题目:
打印出1-100之间的全部素数及其个数,其中判断一个数是否为素数用函数实现。
函数接口定义:
int prime(int x)
其中x
是用户传入的参数,如果x
是素数则函数返回1,否则函数返回0。
裁判测试程序样例:
#include <stdio.h> int prime(int x); int main() { int i,k=0; for(i=1;i<=100;i++) if(prime(i)==1) {printf("%4d",i); k++; if(k%10==0) printf("\n"); } printf("\n%4d\n",k); return 0; } /* 请在这里填写答案 */
输出样例:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
25
———————————————————————————————————————————
以下为我的解题思路:
首先,2单独成为一个情况,当输入的整数为2时直接输出1,其次,判断大于2的整数x是否为素数,当一个数被2到x/2之间的所有整数互质时,则其必为质数;最后,在判断小于2的整数,这里用else表示,最小质数为2,小于2的整数都不是质数,由此得出以下判断整数是否为质数的函数代码:
int prime(int x){
if(x==2){
return 1;
}else if(x>2){
for(int i=2;i<=x/2;i++){
if(x%i==0){
return 0;
}
}
return 1;
}else{
return 0;
}
}
以下为PTA评分: