PAT (Basic Level) Practise (中文)- 1013. 数素数 (20)

 

 http://www.patest.cn/contests/pat-b-practise/1013

令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。

输入格式:

输入在一行中给出M和N,其间以空格分隔。

输出格式:

输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
 1 #include<stdio.h>
 2 #include<math.h>
 3 int isSuShu(int num)
 4 {              
 5     int flag=(int)sqrt(num);
 6     for(int i=3;i<=flag;i+=2)
 7         if(num%i==0)
 8             return 0;
 9     return 1;
10 }
11 
12 int main()
13 {
14     int m=0,n=0;
15     scanf("%d%d",&m,&n);
16     
17     int pi=1,num=2,iNum=0;
18     if( m<=pi && pi<=n )
19     {
20         printf("2");
21         iNum++;
22     }
23     num=3;
24     while(pi<n)
25     {
26         if(isSuShu(num))
27         {
28             pi++;
29             if( m<=pi && pi<=n )
30             {
31                 if(iNum && (iNum)%10==0) 
32                     printf("\n%d",num);
33                 else if(iNum)
34                     printf(" %d",num);
35                 else
36                     printf("%d",num);
37                     
38                 iNum++;
39             }
40         }
41         num+=2;
42     }    
43     return 0;
44 }

 

posted on 2015-04-28 18:35  Asin_LZM  阅读(195)  评论(0编辑  收藏  举报