原题链接:二级C语言-计算素数和
#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; }
解题思路:
注意事项:
参考代码:
0.0分
6 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#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; } 为啥这个是错的呀,各位大佬
妙啊,我也是这样写的,链表不会写
为什么函数中有return 1?作用是什么
@JiamTan 因为你没有考虑到 输入m为1的情况
我觉得很不错,跟我想的一样的
#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; } 说我答案错一半,有人可以帮我看一下吗
@弈 else return(1); 写在函数的最后面
#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); } 求教为什么答案半错啊?
#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; } 有大神帮忙看一下为什么错了???
#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); } 这个为什么是错的啊,各位大佬们