题目:求给定正整数m以内的素数之和
#include<stdio.h>
main(){
int m,n=0,i;
scanf("%d",&m);
ss:
for(;m>=1;m--){
for(i=m/2+1;i>=1;i--){
if(m%i==0)goto ss;
else continue;
}
n=n+m;
}
printf("%d\n",n);
}
编译通过,运行超时
思路是将m从大到小一个一个求余,余数为零就m-1,用到嵌套循环。第一次用带标号的goto,书上说慎用,但不用我不知道怎么跳两层循环才好。我好菜。
我想要达到的结果:输入20,应该输出77
这是我的写法,你参考一下:
#include<stdio.h>
main()
{
int m, sum=0,count=0,i;
scanf_s("%d", &m);
for (int i=2; i<= m;i++) {
count = 0;
for (int j = 2; j < i;j++)
{
if (i % j == 0)
count++;
}
if(count==0)
sum+=i;
}
printf("%d\n", sum);
}
应该是嵌套的问题吧