鱼C论坛

 找回密码
 立即注册
查看: 3495|回复: 6

大量偶数的哥德巴赫猜想

[复制链接]
发表于 2018-11-25 15:43:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 肥喵奶黄包 于 2018-11-25 15:45 编辑

输入两个正整数uStart、uCount,从uStart(如果它是偶数)或uStart+1(如果它是奇数)开始,验证连续uCount个偶数是否符合“哥德巴赫猜想”,并输出偶数等于两个质数之和的形式。求代码!!!!!!!!!
运行截图为
报告四.png
报告四.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-25 17:01:37 | 显示全部楼层
你认真的吗?楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-25 17:40:44 | 显示全部楼层
import math
ustart = int(input(":"))
ucount = int(input(":"))
#这里判断你输入的奇数还是偶数
def panduan(x):
    if x % 2 == 0:
        return x
    else:
        return x+1
#这里获取符合条件的所有素数
def ss(n):
    num=[];
    i=2
    for i in range(2,n):
       for j in range(2,int(math.sqrt(i))+1):
          if(i%j==0):
             break
       else:
          num.append(i)
    return num;

#用变量储存起来
shushu = ss(panduan(ustart) + ucount*2)

#这里讲符合猜想的加法打印出来
def jiafa(x,shushu):
    for i in shushu:
        for j in shushu:
            if x == i + j:
                print(x,"=",i,"+",j)
                return;           
#以下的方法是整合以上ss()函数语句:
#return filter(lambda x: not [x%i for i in range(2, int(math.sqrt(x))+1) if x%i ==0], range(2,n+1))

#这个是猜想函数
def caixiang(x,count):
    for i in range(1,count+1):
        print("第",i,"个偶数: ",end="\t")
        jiafa(x,shushu);
        x += 2

caixiang(panduan(ustart),ucount)

#采用的是python语言
#这个代码效率极差请慎重参考!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-8-20 17:54:09 | 显示全部楼层
#include<bits/stdc++.h>
using namespace std;
inline int twoprime(int a,int b) //判断两个数是否同时为质数
{
        int m=max(a,b);
        for (int i=2;i*i<=m;++i) //从2枚举到两数较大值的平方根即可 
                if (a!=i&&a%i==0||b%i==0&&b!=i)        //其中一个是i的倍数就return 0;
                        return 0;//返回假
        return 1;//返回真
}
inline void gdbh(int num) //验证数字
{
        for (int i=2;i<=num/2;++i)
                if (twoprime(num-i,i)) //如果i和num-i都是质数,num就满足哥德巴赫猜想
                {
                        printf("%d = %d + %d\n",num,i,num-i); //输出 
                        return; //验证成功,return
                }
        printf("验证失败!数字%d!\n",num);
        exit(0);
}
int main()
{
        int s,c;
        scanf("%d%d",&s,&c);
        if (s&1)//是奇数 就加一个一
                ++s; 
        for (int cnt=1;cnt<=c;++cnt,s+=2)//开始枚举
        {
                printf("第%d个偶数  ",cnt); 
                gdbh(s);
        }
        printf("验证成功!"); 
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-20 20:04:42 | 显示全部楼层

来错地方,是c或者c加加
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-21 08:52:27 | 显示全部楼层
#include<bits/stdc++.h>
using namespace std;
bool prime(int a) //判断是否为质数
{
        if(a<2)return 0;
        if(a==2)return 1;
        for (int i=2;i*i<=a;++i) //从2枚举到平方根即可 
                if (a%i==0)        //是i的倍数就return 0;
                        return 0;//返回假
        return 1;//返回真
}
inline void gdbh(int num) //验证数字
{
        for (int i=2;i<=num/2;++i)
                if (prime(i )&&prime(num-i)) //如果i和num-i都是质数,num就满足哥德巴赫猜想
                {
                        printf("%d = %d + %d\n",num,i,num-i); //输出 
                        return; 
                }
        printf("验证失败!数字%d!\n",num);
        exit(0);
}
int main()
{
        int s,c;
        scanf("%d%d",&s,&c);
        if (s&1)//是奇数 就加一个一
                ++s; 
        for (int cnt=1;cnt<=c;++cnt,s+=2)//开始枚举
        {
                printf("第%d个偶数  ",cnt); 
                gdbh(s);
        }
        printf("验证成功!"); 
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-10 10:15:28 | 显示全部楼层
楼主为什么一直不在?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 06:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表