使用函数求素数和:输入两个正整数m和n(1≤m≤n≤500),求m和n之间的素数和。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。要求定义并调用函数prime(p)判断p是否为素数,当p为素数时返回1,否则返回0。定义并调用函数prime_sum(m,n),该函数返回区间[m,n]内所有素数的和。
输入输出示例:
Enter m,n:-1 10
Sum of(2 3 5 7)=17
#include <stdio.h>
int prime(int p){
if(p<2) return 0;
int i;
for(i=2;i<p;i++){
if(p%i==0){
return 0;
}
}
return 1;
}
int prime_sum(int m,int n){
int i,f = 1,sum=0;
for(i=m;i<=n;i++){
if(prime(i)){
if(f == 1){
printf("%d",i);
f = 0;
}else{
printf(" %d",i);
}
sum+=i;
}
}
return sum;
}
int main(){
int m,n,i;
printf("Enter m,n:");
scanf("%d %d",&m,&n);
printf("Sum of(");
int sum = prime_sum(m,n);
printf(")=%d",sum);
return 0;
}
#include <stdio.h>
int p[505];
int plen;
int prime(int p){
if(p<2)return 0;
int isp=1;
for(int i=2;i<p;i++){
if(p%i==0){
isp=0;
break;
}
}
return isp;
}
long prime_sum(int m,int n){
int c=0;
long sum=0;
for(int i=m;i<=n;i++){
if(prime(i)){
sum+=i;
p[c++]=i;
}
}
plen=c;
return sum;
}
int main(void) {
printf("Enter m,n:");
int m,n;
scanf("%d %d",&m,&n);
long sum = prime_sum(m,n);
printf("Sum of(");
for(int i=0;i<plen;i++){
printf("%d",p[i]);
if(i!=plen-1)printf(" ");
}
printf(")=%d",sum);
return 0;
}