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



全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务