輸入在一行中給出M和N,其間以空格分隔。輸出描述:
輸出從PM到PN的所有素?cái)?shù),每10個(gè)數(shù)字占1行,其間以空格分隔,但行末不得有多余空格。輸入例子:
5 27輸出例子:
11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 101 103
import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) {//注意while處理多個(gè)case int N = in.nextInt(); int M = in.nextInt(); List<Integer> list = jisuan(N, M); PRintNum(N, M, list); } } //計(jì)算素?cái)?shù) private static List<Integer> jisuan(int N, int M) { List<Integer> list = new ArrayList<Integer>(); for (int a = 2; a < Integer.MAX_VALUE; a++) { int temp = (int) Math.sqrt(a); if (a == 2) { list.add(a); } else { for (int i = 2; i <= temp; i++) { if (a % i == 0) { break; } if (i >= temp) { list.add(a); } } } if (list.size() == N + M) { break; } } return list; }// 格式輸出 static void printNum(int N, int M, List<Integer> list) { int line = 0; if (N - 2 >=0) { for (int i = N - 2; i < M - 1; i++) { if (line % 10 == 9 || i == M - 2) { System.out.print(list.get(i)); } else { System.out.print(list.get(i) + " "); } line++; if (line % 10 == 0) { System.out.println(); } } } else { for (int i = N-1; i < M ; i++) { if (line % 10 == 9 || i == M-1) { System.out.print(list.get(i)); } else { System.out.print(list.get(i) + " "); } line++; if (line % 10 == 0) { System.out.println(); } } } }}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注