搜索
查看: 805|回复: 5
打印 上一主题 下一主题

第28个啊哈挑战验证哥德巴赫猜想

[复制链接]
跳转到指定楼层
楼主
发表于 2015-8-4 23:09:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
        int k,a,b,fa,fb,i,sum;
        k=10000000;
        sum=0;
        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){
                                sum++;
                        }
                }
        }
        printf("%d",sum);
        system("pause");
        return 0;
}
最后能通过编译,求问为何得不出sum答案?

最佳答案

查看完整内容

为什么捏? 还是给你代码吧 [mw_shl_code=c,true]#include #include #include int prime(int n) { int i,f=1; if(n%2==0||n==1) return 0; else { for(i=3;i
沙发
发表于 2015-8-4 23:09:55 | 只看该作者
为什么捏?
还是给你代码吧

[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int prime(int n)
{
        int i,f=1;
    if(n%2==0||n==1)        return 0;
    else
    {
                for(i=3;i<=sqrt(n);i+=2)
        {
                        if(n%i==0)        {f=0;break;}
        }
        if(f==1) return 1;
        if(f==0) return 0;
    }
   
}
int main()
{       
    printf("歌德巴赫猜想:任何一个大于3的偶数都可以写成两个质数的和\n");
        printf("本程序用于把一个数拆分成两个质数之和\n");
        while(1)
    {
                int n,a,b,amount=0;
                scanf("%d",&n);
                for(a=2;a<=n/2;a++)
                {
               
                        if(prime(a))
                        {
                                b=n-a;
                if(prime(b))
                                {
                printf("%d=%d+%d\n",n,a,b);
                                amount++;
                }
                        }
                }   
                printf("总数=%d\n",amount);
                printf("\n");
    }
        system("pause");
        return 0;
}
[/mw_shl_code]
板凳
发表于 2015-8-5 22:40:51 | 只看该作者
我建议先把一堆变量名改成有意义的单词再说别的
地板
 楼主| 发表于 2015-8-6 11:33:48 | 只看该作者
福华 发表于 2015-8-5 22:32
为什么捏?
还是给你代码吧

感谢! :) 把判断质数单立出来真的便捷清楚很多!~
5#
 楼主| 发表于 2015-8-6 11:41:40 | 只看该作者
rosynirvana 发表于 2015-8-5 22:40
我建议先把一堆变量名改成有意义的单词再说别的

感谢建议 :)
6#
发表于 2015-8-6 18:59:41 | 只看该作者
Tifa_jing 发表于 2015-8-6 11:33
感谢! :) 把判断质数单立出来真的便捷清楚很多!~

自定义函数确实很有用O(∩_∩)O哈哈哈~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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