标题:HDOJ-2099 水题一直找不到错误。。
只看楼主
lxslxs123
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2014-11-17
结帖率:80%
 问题点数:0 回复次数:7 
HDOJ-2099 水题一直找不到错误。。
分拆素数和
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3895    Accepted Submission(s): 1649


Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
 

Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
 

Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
 

Sample Input
30
26
0
 

Sample Output
3
2
 
#include <stdio.h>
int main()
{
    int i,j,n;
    int a[10001];
    while (scanf("%d",&n)!=EOF&&n)
    for(i=1;i<=10000;i++)
        a[i]=i;
    for(i=2;i*i<10000;i++)
        for(j=i+1;j<=10000;j++)
        if(a[i]!=0&&a[j]!=0)
    {
        if(a[i]%a[j]==0)a[j]=0;
    }
    int w=0;
    for(i=1;i<(n/2-1);i++)
        if(a[n/2-i]&&a[n/2+i])w++;
    printf("%d\n",w);
    return 0;
}
搜索更多相关主题的帖子: include Memory Java 
2014-11-17 18:46
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
一直找不到错误?就没两句对的好不好。

重剑无锋,大巧不工
2014-11-17 19:04
lxslxs123
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2014-11-17
得分:0 
回复 2 楼 beyondyf
大神不要这么打击我。。。真的是新手   给点鼓励让我继续学下去吧。。。还有具体哪里错了
2014-11-17 19:09
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
真没哪句是对的,逻辑混乱不堪,没法具体到哪里。况且也没分,没有解释的动力啊
收到的鲜花
  • lxslxs1232014-11-17 19:22 送鲜花  3朵   附言:我很赞同

重剑无锋,大巧不工
2014-11-17 19:21
lxslxs123
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2014-11-17
得分:0 
回复 4 楼 beyondyf
大神行行好,,,我大体给您说下我简陋的思路:
1.先创立这么一个数组a[10001],将里面的所有的非素数挖掉。
2.输入一个10000内的正偶数n,然后从1/2*n开始,挑这个数组里面的非零项加,有几个最后不就是答案么。。。
真的  版主做回好人吧。。我自学C也不容易:(
2014-11-17 19:26
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
你的想法没问题,但并没有用代码真正的实现。

首先,你的while循环应该包含下面所有的代码。你没用花括号括起来,导致包括第一个初始化a的循环。

第二,且不说你这挖非素数的效率太低,就是挖的逻辑也不对。在你的代码里j是永远大于i的(即a[i] < a[j]),所以a[i]%a[j]永远都是等于a[i]的,不会等于0。所以也压根没挖什么。

重剑无锋,大巧不工
2014-11-17 19:37
lxslxs123
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2014-11-17
得分:0 
回复 6 楼 beyondyf
受教!受教!应该是a[j]%a[i],我给弄反了。。    还有版主大神,能赐教一个更有效率的挖非素数的方法么    十分感谢!
2014-11-17 19:53
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
回复 7 楼 lxslxs123
素数筛

重剑无锋,大巧不工
2014-11-17 19:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-438720-1-1.html




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

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