美文网首页
PAT-B-1013. 数素数(Java)

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

作者: GeekMonKey | 来源:发表于2016-12-01 21:43 被阅读217次

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

相关文章

网友评论

      本文标题:PAT-B-1013. 数素数(Java)

      本文链接:https://www.haomeiwen.com/subject/rrlfmttx.html