求1500内的最大五个素数之和。用c语言循环 尽量不用数组
答案:2 悬赏:0 手机版
解决时间 2021-04-07 18:24
- 提问者网友:十年饮冰
- 2021-04-07 15:11
求1500内的最大五个素数之和。用c语言循环 尽量不用数组
最佳答案
- 五星知识达人网友:笑迎怀羞
- 2021-04-07 15:28
#include
int main()
{
int i,j,k=0,sum=0;
for(i=1500;i>0;i--)
{
for(j=2;j<=(i/2);j++)
{
if(i%j==0)
{
break;
}
if(j==(i/2))
{
printf("%d\n",i);
sum+=i;
k++;
}
}
if(k==4)
{
break;
}
}
printf("sum=%d",sum);
}追问我的答案里sum总是不显示,其余五个数能显示追答把你的代码发我看看我这个代码是可以运行的我试过没错误了追问
追答少了个%d最后一个输出少了个%d追问哦我知道了对对对谢谢追答你要找原因啊,这是个小bug追问嗯嗯你回答我前一秒我发现了谢谢
int main()
{
int i,j,k=0,sum=0;
for(i=1500;i>0;i--)
{
for(j=2;j<=(i/2);j++)
{
if(i%j==0)
{
break;
}
if(j==(i/2))
{
printf("%d\n",i);
sum+=i;
k++;
}
}
if(k==4)
{
break;
}
}
printf("sum=%d",sum);
}追问我的答案里sum总是不显示,其余五个数能显示追答把你的代码发我看看我这个代码是可以运行的我试过没错误了追问
追答少了个%d最后一个输出少了个%d追问哦我知道了对对对谢谢追答你要找原因啊,这是个小bug追问嗯嗯你回答我前一秒我发现了谢谢
全部回答
- 1楼网友:西风乍起
- 2021-04-07 15:36
#include
#include
int IsPrime(int x)
{
if(x==2 || x==3)
return 1;
if( (x-1)%6==0 || (x+1)%6==0 ) // 与6的倍数相邻才可能是素数(2、3除外)
{
for(int i = 6; i <= sqrt(x); i+=6)
if( x%(i-1)==0 || x%(i+1)==0)
return 0;
return 1;
}
return 0 ;
}
int main()
{
int i, count = 0, sum = 0;
for(i = 1499; count != 5; i-=2)
{
if(IsPrime(i))
{
// printf("i = %d ", i);
sum += i;
count++;
}
}
printf("sum = %d ", sum);
return 0;
}
#include
int IsPrime(int x)
{
if(x==2 || x==3)
return 1;
if( (x-1)%6==0 || (x+1)%6==0 ) // 与6的倍数相邻才可能是素数(2、3除外)
{
for(int i = 6; i <= sqrt(x); i+=6)
if( x%(i-1)==0 || x%(i+1)==0)
return 0;
return 1;
}
return 0 ;
}
int main()
{
int i, count = 0, sum = 0;
for(i = 1499; count != 5; i-=2)
{
if(IsPrime(i))
{
// printf("i = %d ", i);
sum += i;
count++;
}
}
printf("sum = %d ", sum);
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯