C语言求助,三个超时
查看原帖
C语言求助,三个超时
846575
qgzhuyin楼主2022/12/23 00:10
#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;
			}
		}
	}
}

选用了欧式筛来写质数的函数,结果还是超时了,想知道怎么改进完善代码,万分感谢!

2022/12/23 00:10
加载中...