搜索
查看: 1578|回复: 18
打印 上一主题 下一主题

验证哥德巴赫猜想的问题

[复制链接]
跳转到指定楼层
楼主
发表于 2015-8-12 09:30:00 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int k,a,b,i,fa,fb;
    for(k=4;k<=100;k=k+2)
    {
                for(a=2;a<=k/2;a++)
                        {
                                fa=0;
                for(i=2;i<=a-1;i++)
                                        {
                                                if(a%i==0) {fa=1;break;}
                    }
                    if(fa==0)
                    {
                                                b=k-a;
                                                fb=0;
                                                for(i=2;i<=b-1;i++)
                                                {
                                                if(b%i==0) {fb=1;break;}
                                                }
                                                if(fb==0)
                                                {printf("%d=%d+%d\n",k,a,b);break;}
                                               
                    }
            }
    }              
        system("pause");
        return 0;
}
在for的循环过程中举个例及就是
for(k=4;k<=100;k=k+2)
                               {
                               for(a=2;a<=k/2;a++)
这里的k<=100成立后k=k+2=4+2=6
到下面a<=k/2这里的k值是4还是6?


还有for的循环优先顺序   每次for循环时的数值        求大神详解
{:soso_e149:}

沙发
 楼主| 发表于 2015-8-12 09:51:40 | 显示全部楼层
已经被for搞晕了···{:soso_e134:}
板凳
 楼主| 发表于 2015-8-13 09:34:16 | 显示全部楼层

不是a<=k/2吗?  怎么是a<=50 不是a<=2?
地板
 楼主| 发表于 2015-8-13 09:49:13 | 显示全部楼层

我的意思是为什么k/2就是50      这个k是上面for的k<=100再除以2得来的吗?
5#
 楼主| 发表于 2015-8-13 09:57:28 | 显示全部楼层

虽然我没看懂  但  谢谢
6#
 楼主| 发表于 2015-8-13 10:05:11 | 显示全部楼层

这是按照我的理解加的注释    你看以下对不对#include <stdio.h>
#include <stdlib.h>
int main()
{
        int k,a,b,i,fa,fb;
    for(k=4;k<=100;k=k+2)//第一次循环k=4 4<=100 成立进入下一循环
    {
                for(a=2;a<=k/2;a++)//a=2 2<=4/2  成立进入下一循环
                        {
                                fa=0;//fa赋值为0
                for(i=2;i<=a-1;i++)//i=2 2<=2-1 不成立 跳出循环
                                        {
                                                if(a%i==0) {fa=1;break;}
                    }
                    if(fa==0)//fa=0成立进入下一循环
                    {
                                                b=k-a;//b=4-2=2  
                                                fb=0;//fb赋值为0
                                                for(i=2;i<=b-1;i++)//i=2 2<=2-1  不成立 跳出循环
                                                {
                                                if(b%i==0) {fb=1;break;}
                                                }
                                                if(fb==0)//如果fb=0   成立  执行下面的输出语句
                                                {printf("%d=%d+%d\n",k,a,b);break;}//4=2+2
                                               
                    }
            }
    }              
        system("pause");
        return 0;
}
7#
 楼主| 发表于 2015-8-13 10:08:15 | 显示全部楼层
福华 发表于 2015-8-13 10:06
哈O(∩_∩)O~下午帮你看看

                   谢谢
8#
 楼主| 发表于 2015-8-14 09:26:49 | 显示全部楼层
福华 发表于 2015-8-13 21:42
通过编译!混乱的代码真的非常影响阅读和修改,建议使用Tab键对齐代码,上代码最好使用笑脸旁边的这个按 ...

哦  下次对齐
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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