社区讨论
C语言求助,三个超时
P1304哥德巴赫猜想参与者 4已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @lo3hw2wm
- 此快照首次捕获于
- 2023/10/24 06:54 2 年前
- 此快照最后确认于
- 2023/10/24 06:54 2 年前
C
#include<stdio.h>
#include<math.h>
int zhishu(int a)
{
int b[10001];
for(int i=0;i<10001;i++)
b[i]=1;
for(int i=2;i<sqrt(10001);i++)
{
for(int j=i*i;j<10001;j=j+i)
{
if(b[i])b[j]=0;
}
}
if(b[a])return 1;
else return 0;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=4;i<=n;i=i+2)
{
for(int j=2;j<=n/2;j++)
{
if(zhishu(j)&&zhishu(i-j))
{
printf("%d=%d+%d\n",i,j,i-j);
break;
}
}
}
}
选用了欧式筛来写质数的函数,结果还是超时了,想知道怎么改进完善代码,万分感谢!
回复
共 7 条回复,欢迎继续交流。
正在加载回复...