C语言程序设计( PTA 习题5-4 使用函数求素数和)

/*
本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。
素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。
*/
#include <stdio.h> //引入printf的头文件
int prime( int p ); //prime函数声明
int PrimeSum( int m, int n );//primesum函数声明

int main()//主函数
{
int m, n, p;
scanf("%d %d", &m, &n);
printf("Sum of ( ");

for( p=m; p<=n; p++ ) { //让p从m自增到n,判断每一个数是否为素数
if( prime(p) != 0 ) //调用prime函数判断依次p是否为素数
printf("%d ", p); //如果是素数则输出
}
printf(") = %d\n", PrimeSum(m, n)); //调用primesum函数,求素数的和
return 0;

}

/* 你的代码将被嵌在这里 */
int prime( int p ){
if(p<=1){
return 0; //小于等于1的不是素数
}else if(p==2){
return 1; //2是素数
}else{
int i; //其它大于2的情况
for(i=2; i<p; i++){
if(p%i==0){ //若p能整除i,则不是素数
return 0;
break; //提前结束循环
}
}
return 1; //如果i=p+1的时候都不能让p整除 ,那就是素数
}
}

int PrimeSum( int m, int n )
{
int p, sum = 0;
for(int p=m; p<=n; p++){
if(prime(p)==1){ //再次调用prime函数判断是否为素数,是的话sum+p;
sum += p;
}
}
return sum; //返回sum

}

/*
例子:
输入 1 9
输出 Sum of ( 2 3 5 7 ) = 17

--------------------------------
Process exited after 1.555 seconds with return value 0
请按任意键继续. . .
*/

 

posted @ 2021-11-12 19:43  你代码出BUG了  阅读(618)  评论(0)    收藏  举报