1013

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

public class Main {

    public static void main(String[] args) {
    // 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 51
        Scanner sc=new Scanner(System.in);
        int M=sc.nextInt();
        int N=sc.nextInt();
        boolean b;
        ArrayList<Integer> list=new ArrayList<Integer>();
        list.add(2);
        bgm:for (int num=3;;num++){
            for (int i=2;i<num;i++){
                if(num%i==0){
                    break;
                }
                else if(i==num-1){
                    list.add(num);
                }
            if (list.size()==N){
                break bgm;
            }
            }
        }
        for (int i=M-1;i<N;i++){
            int count=(N-M+1)/10;
            if (count==0){
                if (i==N-1){
                    System.out.print(list.get(i));
                }else{
                    System.out.print(list.get(i)+" ");
                }
            }else{
                if (i==N-1){
                    System.out.print(list.get(i));
                }else{
                    for (int j=0;j<count;j++){
                        if ((i-M+2)%10==0&&i!=M){
                            System.out.println(list.get(i));
                            break;
                        }else{
                            System.out.print(list.get(i)+" ");
                            break;
                        }

                    }

                }
            }


        }
    }
}

运行超时,扣2分

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int M=sc.nextInt();
        int N=sc.nextInt();
        int[] list=new int[1000];
        list[0]=2;
        list[1]=3;
        int x=1;
        for (int num=3;num<11000;num++){
            for (int i=2;i<num;i++){
                if (num%i==0){
                    break;
                }
                if(i==num-1){
                   x++;
                }
                if (x<1000){
                    list[x]=num;
                }

            }
        }

        for (int i=M-1;i<N;i++){
            int count=(N-M+1)/10;
            if (count==0){
                if (i==N-1){
                    System.out.print(list[i]);
                }else{
                    System.out.print(list[i]+" ");
                }
            }else{
                if (i==N-1){
                    System.out.print(list[i]);
                }else{
                    for (int j=0;j<count;j++){
                        if ((i-M+2)%10==0&&i!=M){
                            System.out.println(list[i]);
                            break;
                        }else{
                            System.out.print(list[i]+" ");
                            break;
                        }

                    }

                }
            }


        }
    }
}

测试点错误,扣1分,应该是取值范围有问题

posted @ 2018-09-29 16:56  博客园机器人  阅读(539)  评论(0编辑  收藏  举报