#include<stdio.h>
int isprime(int x)
{
    int i;
     if(x<2) return 0;
     for(i=2;i<x;i++) if(x%i==0) return 0;
     return 1;
}
int main(void)
{
    int m,n,i,sum=0;
    scanf("%d%d",&m,&n);
    for(i=m;i<=n;i++)
    {
        if(isprime(i))
        sum+=i;
    }
    printf("%d",sum);
    return 0;
}

解题思路:





注意事项:





参考代码:

点赞(11)
 

0.0分

6 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 24 条评论

jockey驾驶员 2年前 回复TA

#include<stdio.h> extern int flag=1; void isprime(int x); int main() { int m,n,i,sum=0; scanf("%d%d",&m,&n); if(m>n||m==n||m<2) printf("格式错误"); else { for(i=0;m<=n;i++,m++) { isprime(m); if(flag==1) sum+=m; } printf("素数之和为%d\n",sum); } } void isprime(int x) { int j; for(j=2;(j<=x-1)&&(flag);j++) if(x%j==0) flag=0; } 为啥这个是错的呀,各位大佬

陈强 4年前 回复TA

妙啊,我也是这样写的,链表不会写

helena 4年前 回复TA

为什么函数中有return 1?作用是什么

迷离半醉 4年前 回复TA

@JiamTan 因为你没有考虑到 输入m为1的情况

江畔读书人 5年前 回复TA

我觉得很不错,跟我想的一样的

JiamTan 5年前 回复TA

#include<stdio.h> int isprime(int x) { int i,j=0; if(x==2) { return x; } else { for(i=2;i<x;i++) { if(x%i==0) { return j; } else { return x; } } } return 0; } int main() { int add=0,m,n,i; scanf("%d%d",&m,&n); for(i=m;i<=n;i++) { add+=isprime(i); } printf("%d",add); return 0; } 说我答案错一半,有人可以帮我看一下吗

海洋之心 5年前 回复TA

@弈 else return(1); 写在函数的最后面

5年前 回复TA

#include "stdio.h" int isprime(int x) { int i; if(x==1)return(0); else if(x==2)return(1); else for(i=2;i<x;i++) { if(x%i==0)return(0); else return(1); } } void main() { int n,m,i,k=0; scanf("%d%d",&m,&n); for(i=m;i<=n;i++) if(isprime(i)==1)k+=i; printf("%d",k); } 求教为什么答案半错啊?

MaBorgia 5年前 回复TA

#include<stdio.h> int isprime(int x) { int flag=1,i; for(i=2;i<x;++i) {if(x%i==0) { flag=0; break; } else flag=1; } if(flag==1) return x; else return 0; } int main() { int n,m,sum=0,j=0,i; scanf("%d %d",&m,&n); for(i=m;i<=n;i++) { j=isprime(i); sum=sum+j; } printf("%d",sum); return 0; } 有大神帮忙看一下为什么错了???

张贻鑫 6年前 回复TA

#include<stdio.h> int isprime(int m,int n) { int i,j,sum; if(m<=2) sum=2; if(m>2) sum=0; for(i=m;i<=n;i++) { for(j=2;j<=i/2;j++) if(i%j==0) break; if(i%j!=0) sum+=i; } printf("%d",sum); } int main() { int M,N; scanf("%d%d",&M,&N); isprime(M,N); } 这个为什么是错的啊,各位大佬们