搜索
查看: 634|回复: 1
打印 上一主题 下一主题

大神们帮助一下,看看哪里打错了还是。。。。

[复制链接]
跳转到指定楼层
楼主
发表于 2014-12-1 22:35:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,fa,fb,k,i;
    for(k = 4;k<=100;k=k+2)
    {
                for(a = 2;a<=k/2;a++)
        {
                        //判断a是否为质数
                        fa = 0;
            for(i = 2;i<=a-1;i++)
            {
                                if(a%i==0)
                {
                                        fa = 1;
                    break;
                }
                if(fa == 0)//如果a为质数
                {
                                        b = k-a;
                    //判断b是否为质数
                    fb = 0;
                    for(i = 2;i<=b-1;i++)
                    {
                                                if(b%i == 0)
                        {
                                                        fb = 1;
                            break;
                        }
                    }
                    if(fb == 0)//如果b也为质数
                    {
                                                printf("%d=%d+%d\n",k,a,b);
                        break;                       
                    }
                }
            }
        }
    }
        system("pause");
        return 0;
}
4~100内所有的偶数可以拆成两个质数之和,比着书上打的,为什么不对了,看不出来了,大神们帮忙啊

沙发
发表于 2014-12-4 10:50:46 | 只看该作者
在内层循环判断 b 是否为素数的时候,又用到了 变量 i  。那么在判断 a 是素数的时候 i 的变量就被改变了,然后你就死循环了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表