求助大佬,三个超时,不知道怎么改
查看原帖
求助大佬,三个超时,不知道怎么改
818552
loe2022楼主2022/10/12 14:17
#include <stdio.h>
int pan(int m)  //判断是不是质数的函数 
{
	int isPrime=1;
	int j;
	for(j=2;j<m;j++)
	{
		if(m%j==0)
		{
			isPrime=0;
		}
	}
	return isPrime;
}
int main()
{
	int n;
	scanf("%d",&n);//读入n 
	int a[10000]={0};
	int i,j,k=0,l,q,s=0;
	int p;
	for(i=4;i<=n;i++)
	{
		k=0;
		for(j=2;j<i;j++)
		{
			p=pan(j);
			if(p==1)
			{
				a[k]=j;   //a[]中装的是从2到i的所有的质数,并且是从小到大排列的,元素个数为k 
				k++;
			}
		}
		for(l=0;l<k-1;l++)
		{
			for(q=l;q<k;q++)
			{
				if(a[l]+a[q]==i)
				{
					printf("%d=%d+%d\n",i,a[l],a[q]);
					goto out;
				}
			}
		}
	out:i++;
	}
	return 0;
}
2022/10/12 14:17
加载中...