参考代码:
#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分
5 人评分
#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); } 求教为什么答案半错啊?
墨染 2020-02-06 17:42:59 |
我也是这个思路,答案也是半解
请教一下为什么我这个无法得出正确答案,比如输入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; }
wu 2018-04-08 15:11:14 |
#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; }
wu 2018-04-08 15:11:58 |
j应该被初始为0 1不是质数
那个人 2018-04-09 19:04:26 |
谢谢
P 2020-05-13 11:48:53 |
就是编译错误,说可能越界什么的