B1013 PAT乙级JAVA题解 数素数
令 Pi 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM 到 PN 的所有素数。
输入格式:
输入在一行中给出 M 和 N,其间以空格分隔。
输出格式:
输出从 PM 到 PN 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。
输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;public class Main {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.readLine());int n=Integer.parseInt(st.nextToken());int m=Integer.parseInt(st.nextToken());long start=1,k=0;for(int i=0;i<n-1;i++) {while(!isPrime(start)) {start++;}start++;}for(int i=0;i<m-n+1;i++) {while(!isPrime(start)) {start++;}k++;if(k%10==1&&k!=1) {System.out.println();}if(k%10==1) {System.out.print(start);}else {System.out.print(" "+start);}start++;}System.out.println();}public static boolean isPrime(long num) {if(num<=1) return false;if(num==2||num==3||num==5||num==7) {return true;}for(int i=2;i<Math.sqrt(num)+1;i++) {if(num%i==0) return false;}return true;}
}