#各位我想请教一下,这个有什么问题啊,为什么能在编译器得到正确的结果,但是在洛谷不对啊T-T
#include
#include
#include
int main(int argc, char *argv[]) {
int l,i,j,sum,num=0,flag;
scanf("%d",&l);
if(l<2){
printf("0");
}
if(l==2){
printf("2\n1\n");
}
for(i=2;i<=l;i++){
flag=0;
for(j=2;j
if(i%j==0){
flag=1;
break;
}
}
if((sum+i)<=l&&flag==0){
num++;
printf("%d\n",i);
sum+=i;
}
}
printf("%d\n",num);
return 0;
}
for(i=2;i<=l;i++)
这是在弄啥咧
让你输出所有质数的和小于L
不是让你输出小于L的所有质数
不审题呀
sum 没有初始化,修改如下,供参考:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[]) {
int l, i, j, sum = 0, num = 0, flag;
scanf("%d", &l);
if (l < 2) {
printf("0");
}
if (l == 2) {
printf("2\n1\n");
}
for (i = 2; i <= l; i++) {
flag = 0;
for (j = 2; j < i; j++)
if (i % j == 0) {
flag = 1;
break;
}
if ((sum + i) <= l && flag == 0) {
num++;
printf("%d\n", i);
sum += i;
}
}
printf("%d\n", num);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: