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 }