PAT-B-1013. 数素数(Java)

1013. 数素数 (20)

package com.hym.PAT_B;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Created by ymhou on 2016/11/22.
 * PAT官网部分测试点运行超时(100ms运行时间限制),牛客网运行通过
 */
public class PAT_B_1013 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int M = scanner.nextInt();
        int N = scanner.nextInt();
        List<Integer> list;
        list = GetnPrimeList(N);
        for(int i=M-1; i<N; i++){
            System.out.print(list.get(i));
            if((i-M+2)%10 !=0){
                if(i==N-1) break;
                System.out.print(" ");
            }else {
                System.out.println();
            }
        }
    }

    public static List<Integer> GetnPrimeList(int num){
        List<Integer> list = new ArrayList<Integer>();
        int startNumber = 1;
        while(list.size() < num){
            if(IsPrime(startNumber,list)){
                list.add(startNumber);
            }
            startNumber++;
        }
        return list;
    }

    public static boolean IsPrime(int num,List<Integer> list){
        if(num==1){
            return false;
        }
        int max = (int) Math.sqrt(num);
        for(int n:list){
            if(num%n==0){
                return false;
            }
            if(n>max){
                break;
            }
        }
        return true;
    }
}

推荐阅读更多精彩内容

  • 传送门 https://pintia.cn/problem-sets/994805260223102976/pro...
    FlyRush阅读 1,316评论 0 1
  • 注: 交通APP:google map 到机场记得取Wifi还WIfi啊 去Discount shop买新干线 箱...
    小麦_758b阅读 947评论 0 0
  • markdown浏览器内嵌编辑器: StackEdit 是一个开放源码免费使用的 MarkDown 编辑器, 基于...
    似一阅读 402评论 0 1
  • 前言 从最开始动笔动画篇的博客,至今已经过去了四个多月。按照原本自己的规划,本篇博客应该是CoreAnimatio...
    sindri的小巢阅读 5,262评论 7 57
  • 青春是一首后现代的诗 朴实,放纵 我用平凡将它书写 用灵魂把它灌注 这是一首默默无闻的诗 很少有人把它关注 更不会...
    澄紫阅读 136评论 0 1