1013. 数素数 (20)

题目链接:https://www.patest.cn/contests/pat-b-practise/1013

思路:(1)找到第M个素数:从第一个素数2开始,逐个判断自然数是否为素数,是,素数个数加一,找到i=M ;

(2)从第M个素数,重复(1),找素数,并输出,直到找到第N个素数,

注意点:

(1)每满10个要换行,

(2)格式,最后一个没有空格。

 1 #include<stdio.h>
 2 #include<math.h>
 3 int ispre(int n)
 4 {
 5     int i,nn;
 6     nn=sqrt(n);
 7     for(i=2;i<=nn;i++)
 8     {
 9         if(n%i==0)
10            return 0;
11     }
12     if(i>nn)
13         return 1; 
14 }
15 int main()
16 {
17     int M,N,i,j,a,num;
18     scanf("%d %d",&M,&N);
19     i=0,a=2;
20     while(i!=M)
21     {
22         if(ispre(a))i++;    
23         a++;
24     }
25     printf("%d",a-1);      //输出第M个素数 
26     if(N==M)return 0;      //N=M结束 
27     else
28     {
29         printf(" ");
30         num=1;
31         while(i!=N)
32         {
33             if(ispre(a))
34             {
35                 i++;
36                 num++;
37                 printf("%d",a);
38                 if(num%10){
39                     if(i<N)
40                        printf(" ");         //注意最后一个没有空格。 
41                 }
42                 else printf("\n");
43             }
44             a++;
45         }
46     }
47     //printf("c");
48     return 0;
49  } 

 

posted @ 2018-01-20 20:51  爱你的笑  阅读(178)  评论(0编辑  收藏  举报