基础40 分拆素数和

40 分拆素数和

作者: xxx时间限制: 1S章节: 函数

问题描述 :

把一个偶数拆成两个不同素数的和,有几种拆法呢?

说明:

比如10,可以拆成3+7和5+5以及7+3,

但是3+7与7+3相同,只算一种,5+5由于两个素数相同,不计算在内。

因此,10的拆法只有一种。

输入说明 :

首先输入一个T(不超过500),然后输入T个正的偶数,其值不会超过10000。

输出说明 :

对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。

输入范例 :
4
4
6
8
10
输出范例 :
0
0
1
1

#include<stdio.h>
#include<math.h>
int geshu(int a){
	int i,j,flag,m[10000],p=0,gs=0;
	for(i=2;i<=a;i++){
		flag=0;
		for(j=2;j<=sqrt(i);j++)
			if(i%j==0) {flag=1;break;}
		if(flag==0) m[p++]=i;
	}
	for(i=0;i<p;i++){
		for(j=i+1;j<p;j++)
			if(m[i]+m[j]==a) gs++; 
	}
	return gs;
}
 int main(){
	int T,i,m,n;
	scanf("%d",&T);
	for(i=0;i<T;i++){
       scanf("%d",&m);
	  printf("%d\n",geshu(m));
	}
	return 0;
}
发布了54 篇原创文章 · 获赞 1 · 访问量 246

猜你喜欢

转载自blog.csdn.net/qq_39338091/article/details/105715906