东华大学 oj62——分拆素数和
作者:互联网
问题描述 :
把一个偶数拆成两个不同素数的和,有几种拆法呢?
说明:
比如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 <stdlib.h>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//判断素数
int isPrime(int n) {
int i;
if(n==2){
return 1;
}
for(i=2;i<n;i++) {
if(n%i==0){
return 0;
}
}
return 1;
}
int main(int argc, char *argv[]) {
int t,n,i,j,retCount;
scanf("%d",&t);
for(i=0;i<t;i++){
scanf("%d",&n);
retCount=0;
for(j=2;j<(n/2);j++) {
if(isPrime(j)==1){
//直接求temp-j是不是素数
if(isPrime(n-j)==1){
if(j!=(n-j)){
// printf("%d %d\n",j,n-j);
++retCount;
}
}
}
}
printf("%d\n",retCount);
}
return 0;
}
标签:拆成,return,int,retCount,素数,东华大学,isPrime,oj62 来源: https://blog.csdn.net/qq_44169095/article/details/113724242