求问哪里错了 只能输出到出现12哪里 以后都没法输出了
查看原帖
求问哪里错了 只能输出到出现12哪里 以后都没法输出了
470155
joyceZ楼主2021/1/16 09:36
#include<stdio.h>
#include<math.h>
int n;
int flag[10002]={0};
int isprime(int i)
{
	if(flag[i]==1) return 1;
	else if(flag[i]==2) return 0;
	else
	{
		int k=3;
		int q=(int)sqrt(i);
		while(k<=q)
		{
			if(i%k==0)
			{
				flag[i]=2;
				return 0;
			}
		}
		flag[i]=1;
		return 1;
	}
}

void divide (int num)
{
	int i;
	for(i=3;i<=n/2;i=i+2)
	{
		int k=num-i;
		if(isprime(i)==1&&isprime(k)==1)
		{
			printf("%d=%d+%d\n",num,i,k);
			break;
		}
	}
}
int main()
{
	scanf("%d",&n);
	//isprime();
	int i=4;
	printf("4=2+2\n");
	for(i=6;i<=n;i=i+2)
	{
		divide(i);
	}
	
	return 0;
}
2021/1/16 09:36
加载中...