偶数拆成素数和.Problem Description把一个偶数拆成两个不同素数的和,有几种拆法呢?Input输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束.Output对应每个偶数,输出其拆成不
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 15:50:05
偶数拆成素数和.Problem Description把一个偶数拆成两个不同素数的和,有几种拆法呢?Input输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束.Output对应每个偶数,输出其拆成不
偶数拆成素数和.
Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束.
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行.
Sample Input
30
26
0
Sample Output
3
2
我写的代码输出都是0..
#include
#include
int main()
{
int n,a,b,i,k1,k2,m=0;
while(scanf("%d",&n)!=EOF&&(n!=0))
{
k1=0;
k2=0;
for(a=2;a
偶数拆成素数和.Problem Description把一个偶数拆成两个不同素数的和,有几种拆法呢?Input输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束.Output对应每个偶数,输出其拆成不
#include<stdio.h>
#include<math.h>
int main()
{
\x09int n,a,b,i,k1,k2,m;
\x09while(scanf("%d",&n)!=EOF&&(n!=0))
\x09{
\x09\x09m=0;//对于每个n都需对m进行初始化为0
\x09\x09for(a=2;a<(n/2);a++)
\x09\x09{
\x09\x09\x09k1=0;//对于每个a,b组合都要初始化k1,k2为0
\x09\x09\x09k2=0;//
\x09\x09\x09b=n-a;
\x09\x09\x09for(i=2;i<=sqrt(a);i++)//循环条件改成i<=sqrt(a)
\x09\x09\x09{
\x09\x09\x09\x09if(a%i==0)
\x09\x09\x09\x09\x09k1=1;
\x09\x09\x09}
\x09\x09\x09for(i=2;i<=sqrt(b);i++)//循环条件改成i<=sqrt(b),必须改,否则比如b=25,你会把25判断成指数
\x09\x09\x09{
\x09\x09\x09\x09if(b%i==0)
\x09\x09\x09\x09\x09k2=1;
\x09\x09\x09}
\x09\x09\x09if((k1==0) && (k2==0))
\x09\x09\x09\x09m++;
\x09\x09}
\x09\x09printf("%d\n",m);
\x09}
\x09return 0;
}