分拆素數和 hd 2098

q923714892發表於2020-04-06
Description
把一個偶數拆成兩個不同素數的和,有幾種拆法呢?

Input
輸入包含一些正的偶數,其值不會超過10000,個數不會超過500,若遇0,則結束。

Output
對應每個偶數,輸出其拆成不同素數的個數,每個結果佔一行。

Sample Input
30
26
0

Sample Output
3

2

#include<stdio.h>
int su[10000+11]={1,1};
int main()
{
	int n,k;
	for(int i=2;i<=10000;i++)
	{
		if(su[i]==1)
		continue;
		for(int j=i*2;j<=10000;j+=i)
		su[j]=1;
	}
	while(~scanf("%d",&n),n!=0)
	{
		k=0;
		for(int i=2;i<(n/2);i++)
		{
			if(su[i]!=1&&su[n-i]!=1)
			{
				k++;	
			}
		
		}
		printf("%d\n",k);
	}
	return 0;
}


相關文章