作业 - 素数
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 }