原题链接:二级C语言-计算素数和
参考代码:
#include<stdio.h>
int isprime(int M,int N)
{
int i,j,sum=0,flag;
for(i=M;i<=N;i++)
{
flag=1;
for(j=2;j<i;j++)
{
if(i%j==0)
{
flag=0;
}
}
if(flag==1)
{
sum=sum+i;
}
}
if(M>1)
return sum;
else
return sum-1;
}
int main()
{
int M,N,sum;
scanf("%d%d",&M,&N);
sum=isprime(M,N);
printf("%d\n",sum);
return 0;
}0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int isprime(int d[100],int t) { int i=0,j; int z=0,q=1; for (i = 0; i < t; i++) { for (j = 2; j <d[i]; j++) { if (d[i] % j == 0) { q = 0; } } if (q == 1) { z = d[i] + z; } q = 1; } if (d[0] == 1) { return z-1; } else { return z; } } int main(void) { int a, b,i,t,z=0; int d[100] = { 0 }; scanf("%d%d", &a, &b); t = b - a+1; for (i=0; a <= b; i++) { d[i] = a; a = a + 1; } z=isprime(d,t); printf("%d", z); return 0; }想问一下为啥编译错误,自己运行可以呀?#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 m,int n) { int i,j=0,x,sum=0; for(x=m;x<=n;x++) { for(i=2;i<x;i++) { if(x%i==0) j=1; } if(j==0) { if(x!=1) sum=sum+x; } j=0; } return sum; } int main() { int m,n,sum; scanf("%d %d",&m,&n); sum=isprime(m,n); printf("%d\n",sum); getchar(); getchar(); return 0; }请教一下为什么我这个无法得出正确答案,比如输入13 17,得到的答案为13 #include <stdio.h> int isprime(int m,int n) { int i,j=0,x,sum=0; for(x=m;x<=n;x++) { for(i=2;i<x;i++) { if(x%i==0) j=1; } if(j==0) { sum=sum+x; } } return sum; } int main() { int m,n,sum; scanf("%d %d",&m,&n); sum=isprime(m,n); printf("%d\n",sum); getchar(); getchar(); return 0; }