1013 数素数 (20 分)
【思路】素数:2,3,5,7,11,......
第五个素数刚好是11,所以要注意顺序下标不是从0开始的。从2开始一个个判断是不是在第M个素数和第N个素数之间,然后再判断是否要换行,输出十个换一行,总数在范围内的,输出要带空格,//最后一个,但是未满10列,输出不带空格的。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int M = sc.nextInt();
int N = sc.nextInt();
int x = 2;
int No = 0;//第几个质数
int col = 0;//列
while(true){
if(isPrime(x)){
No++;
if(No >= M && No <= N){
if(col == 9){
//一列中的最后一个则要换行
System.out.println(x);
col =0;//列序号归零
}else if(No != N){
//总数在范围内
System.out.print(x + " ");
col++;
}else{
//最后一个,但是未满10列,输出不带空格的
System.out.print(x);
}
}
}
//如果大于N
if (No > N) {
break;
}
x++;
}
}
//判断质数
public static boolean isPrime(int x){
for(int i=2; i <= Math.sqrt(x); i++){//注意是小于等于噢
if(x % i == 0){
return false;
}
}
return true;
}
}
查看8道真题和解析
基恩士成长空间 426人发布