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; } }