| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1477 人关注过本帖
标题:哥德巴赫猜想
只看楼主 加入收藏
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
结帖率:92.31%
收藏
已结贴  问题点数:15 回复次数:3 
哥德巴赫猜想
2、哥德巴赫猜想
题目描述
德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数的和。但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对。试求输入偶数n可以分解成多少种不同的素数对。(注: A+B与B+A认为是相同素数对)              
输入描述
输入大于6的偶数              
输出描述
输出个数              
样例输入
10
8  
6744   




我的代码:(我已经找到能加起来=这个数的素数了,可我怎么判断相同的素数组啊,注释掉的不要了)
#include<stdio.h>
int main()
{
    int sushu(int n);
    int fenjie(int m);
    int n;

    int k;
    scanf("%d",&n);
    k=fenjie(n);

        printf("%d\12",k);
   
        
}
int sushu(int n)
{
    int i;
    int k;
    for(i=2;i<n;i++)
    {
        if(n%i==0)
            break;
    }
    if(i<n-1)
        k=0;
    else
        k=1;
    return (k);

}
int fenjie(int m)
{
    int i,j;
    int k=0;
    int t;
    int s,h;
    int a[100],b[100];
    for(i=1;i<m;i++)
    {
        for(j=1;j<m;j++)
        {
            if(j+i==m && sushu(i)==1 && sushu(j)==1)
            {
                a[k]=i;
                b[k]=j;
                k++;

            }
        }
   
    }
    /*t=k--;
    for(s=0;s<t;s++)
    {
        for(h=0;h<t;h++)
        {
            if(a[h]==b[s])
                k--;
        }
   
    }*/
    return (k);
        
}  

搜索更多相关主题的帖子: 哥德巴赫猜想 素数 输入 int for 
2018-11-29 10:49
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:5 
1. 你的题目中没有数据范围限制,这就没法做了
2. “可我怎么判断相同的素数组啊”,对于 a+b 这种形式,只要令a<=b就没有重复了

2018-11-29 11:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <stdbool.h>

bool IsPrime( unsigned n )
{
    if( n<2 || (n!=2 && n%2==0) )
        return false;
    for( unsigned i=3; i*i<=n; i+=2 )
        if( n%i == 0 )
            return false;
    return true;
}

unsigned PrimePairCount( unsigned n )
{
    unsigned count = 0;
    for( unsigned i=3; 2*i<=n; i+=2 )
        if( IsPrime(i) && IsPrime(n-i) )
            ++count;
    return count;
}

int main( void )
{
    unsigned n;
    scanf( "%u", &n );
    printf( "%u\n", PrimePairCount(n) );
}
2018-11-29 12:34
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
收藏
得分:0 
谢谢大家

I am the voice of the next generation
Completely digital
Create synthetic auras
2018-11-29 19:27
快速回复:哥德巴赫猜想
数据加载中...
 
   



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

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