#include<stdio.h>
int susu(int num);
int main(){
int m,n,f=0,sum=0,ge=0;
scanf("%d %d",&m,&n);
for(int i=m;i<=n;i++){
f=susu(i);
if(f==1){
ge++;
sum+=i;
}
}
printf("%d %d",ge,sum);
return 0;
}
int susu(int num){
if(num<=3)return 1;
else{
for(int i=2;i<=num/2;i++){
if(num%i==0)return 0;
else return 1;
}
}
}
麻烦看看哪里出错了,谢谢。
输入10 31 结果输出11 231;
正确答案是7,143
#include<stdio.h>
int susu(int num);
int main() {
int m, n, f = 0, sum = 0, ge = 0;
scanf("%d %d", &m, &n);
for (int i = m; i <= n; i++) {
f = susu(i);
if (f == 1) {
ge++;
sum += i;
}
}
printf("%d %d", ge, sum);
return 0;
}
int susu(int num) {
if (num <= 3) return 1;
else {
for (int i = 2; i <= num / 2; i++) {
if (num%i == 0) {
return 0;
}
}
}
return 1;
}
可以参考这篇博客,输出100以内的质数(C和Python):https://blog.csdn.net/L_J_Kin/article/details/123974603