作业 - 素数

main.m

 1 #import <Foundation/Foundation.h>
 2 
 3 void printPN(int range)
 4 {
 5     if(range <= 2)                             //如果上限<=2
 6     {
 7         printf("只有一个素数: 2 \n");
 8     }
 9     
10     int count = 0;                             //统计素数个数
11     int PN, a;                                 //PN 代表质数变量, a 代表被除数变量
12     
13     if(range >2)                               //如果上限>2
14     {
15         count ++;
16         printf("第 %d 个素数: 2\n",count);      //先把第1个质数2输出
17         
18         for (PN = 3; PN <= range; PN += 2)     //取3到range内的所有奇数,包括3
19         {
20             for (a = 2; a< sqrt(PN); a++)      //是否可以被2到 根号PN 范围内的整数整除
21             {
22                 if (PN % a == 0)
23                     break;
24             }
25             
26             if (a > sqrt(PN))                  //如果a比根号PN大,则PN不可能被其他数整除,即PN是质数
27             {
28                 count ++;
29                 printf("第 %d 个素数: %d\n",count,PN);
30             }
31         }
32     }
33     
34 }
35 
36 int main(int argc, const char * argv[])
37 {
38     @autoreleasepool
39     {
40         int range;
41         printf("请输入一个正整数: ");             //获取要求的上限
42         scanf("%d",&range);
43         
44         printPN(range);
45     }
46     return 0;
47 }

 

posted @ 2016-05-09 13:01  小样和牛牛  阅读(220)  评论(0编辑  收藏  举报