| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 515 人关注过本帖, 1 人收藏
标题:请教验证歌德巴赫猜想的算法优化问题
取消只看楼主 加入收藏
ma815841356
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-5-3
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:1 
请教验证歌德巴赫猜想的算法优化问题
这是OJ平台上的一道题

 题目如下:

验证歌德巴赫猜想

 要求:Time Limit: 400/200 MS (Java/Others)     Memory Limit: 32768/5000 K (Java/Others)
图片附件: 游客没有浏览图片的权限,请 登录注册


我自己写了一份代码,用的是筛选法求素数,但提交后还是Time Limit Exceeded,是筛选法还不够优化还是我后面那个输出的方法不够好,或者我的代码中有哪些不足或不妥的地方,请各位大神不吝指出,谢谢

 以下是本人的代码:

#include<stdio.h>

 int main()
 {
     int n,i,t,p,q,a[10001],k,w;

     while(scanf("%d",&n)==1)//用筛选法求出所有素数
    {
         t=1;
         a[1]=2;
         for(i=3; i<=n; i++)
         {
             if(i%2!=0)
             {
                 t++;
                 a[t]=i;
             }
         }

         for(p=1; p<t; p++)
         {
             if(a[p]!=0)
                 for(q=p+1; q<=t; q++)
                 {
                     if(a[q]%a[p]==0)
                         a[q]=0;
                 }
         }

         k=0;

         if(t%2!=0)//将a[t]一分为二,前部分为较小数,后部分为较大数
            w=t/2+1;
         else
             w=t/2;

         for(p=w; p>=1; p--)//思路是"用较小数中的最大数"加上"较大数中的最小数",不满足判断条件的话,较大数中的最小数再往后变大
        {
             if(a[p]!=0)
             {
                 for(q=w; q<=t; q++)
                     if(a[q]!=0)
                     {
                         if(a[p]+a[q]==n)
                         {
                             printf("%d %d\n",a[p],a[q]);
                             k=1;
                             break;
                         }
                     }
             }

             if(k==1)
                 break;
         }
     }

     return 0;
 }
搜索更多相关主题的帖子: 歌德巴赫 include Memory Java 
2015-05-06 23:11
ma815841356
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-5-3
收藏
得分:0 
回复 2楼 wmf2014
谢谢指点
2015-05-07 22:43
快速回复:请教验证歌德巴赫猜想的算法优化问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016656 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved