新手入门-新人c++提问 哥德巴赫才行小程序

问题描述

新人c++提问 哥德巴赫才行小程序

不知道哪里逻辑有问题,得不出正确结果。
是关于哥德巴赫才行的程序,结果是从88开始,而且有些数也不是素数,求大神

解决方案

你的jundge里面的循环有问题,你不能光比较k=2能不能整除就直接返回了,应该是

 for (k=2;k<=x/2;k++)
{
if (x%k==0)
return 1;
}
return 0;

解决方案二:

http://blog.csdn.net/xianfajushi/article/details/25125133

解决方案三:

 #include<stdio.h>
#include<math.h>

    /// <summary>
        /// 判断一个数是否是素数
        /// </summary>
        /// <param name="intNum">要判断的数</param>
        /// <returns>如果是,返回true,否则,返回false</returns>
        static bool IsPrimeNumber(int intNum)
        {
            bool blFlag = true;                         //标识是否是素数
            if (intNum == 1 || intNum == 2)                 //判断输入的数字是否是1或者2
                blFlag = true;                          //为bool类型变量赋值
            else
            {
                int sqr =(int)(sqrt((double)intNum));   //对要判断的数字进行开方运算
                for (int i = sqr; i >= 2; i--)                  //从开方后的数进行循环
                {
                    if (intNum % i == 0)                    //对要判断的数字和指定数字进行求余运算
                    {
                        blFlag = false;                 //如果余数为0,说明不是素数
                    }
                }
            }
            return blFlag;                              //返回bool型变量
        }

/// <summary>
/// 判断一个数是否符合哥德巴赫猜想
/// </summary>
/// <param name="intNum">要判断的数</param>
/// <returns>如果符合,返回true,否则,返回false</returns>
static bool ISGDBHArith(int intNum)
{
    bool blFlag = false;                            //标识是否符合哥德巴赫猜想
    if (intNum % 2 == 0 && intNum > 6)              //对要判断的数字进行判断
    {
        for (int i = 1; i <= intNum / 2; i++)
        {
            bool bl1 = IsPrimeNumber(i);            //判断i是否为素数
            bool bl2 = IsPrimeNumber(intNum - i);       //判断intNum-i是否为素数
            if (bl1 & bl2)
            {
                //输出等式
                printf("%d=%d+%dn",intNum, i, intNum - i);
                blFlag = true;
                //break;
                    //符合哥德巴赫猜想
            }
        }
    }
    return blFlag;                              //返回bool型变量
}

void main()
{
    int a=0;
    printf("输入一个大于6的偶数:n");
    scanf_s("%d",&a,10);
    bool blFlag = ISGDBHArith(a);               //判断是否符合哥德巴赫猜想
    if (blFlag)
    {
        printf("%d能写成两个素数的和,所以其符合哥德巴赫猜想。",a);
    }
    getchar();
    getchar();
}

时间: 2024-11-19 00:06:19

新手入门-新人c++提问 哥德巴赫才行小程序的相关文章

新手入门-新人,求指点,新入门java

问题描述 新人,求指点,新入门java java中什么时候需要用到带参方法,有时候用无参方法也可以解决的,带参方法哪里能优于无参方法 解决方案 比如编写一个函数,返回sin值,那么就需要一个参数,你需要的角度. 返回两个数相加的和,那就需要两个参数. 如果计算pi的值,或者获取当前时间,就不要参数. 这个根据需要来. 解决方案二: 需要参数就要用带参数的方法:或者是有了全局变量就不用传参数直接调用:没有优劣之分.不用太在意这些细节,从整体出发去学习. 解决方案三: 使用参数可以让程序更通用, 比

《微信小程序:开发入门及案例详解》—— 2.2 “徒手”创建小程序

2.2 "徒手"创建小程序 为了让开发者更好地理解小程序框架运行机制,接下来将带领大家"徒手"创建一个结构最简单的小程序,这样每个细节都是开发者自己完成的,这对理解小程序框架有很大帮助.步骤如下: 1)创建项目目录,这里以E:\weixin\myproject为例. 2)按图2-2所示的目录结构创建文件: 3)打开app.json,写入以下代码: { "pages" : [ / 指定默认启动页面地址 / "mypages/index/i

《微信小程序:开发入门及案例详解》—— 1.3 第一个小程序

1.3 第一个小程序 完成开发准备后我们便可以开始编写小程序,微信小程序的开发十分简单,大家可以快速上手.下面我们利用官方提供的dmeo让大家对小程序开发有初步认识.1)打开微信开发者工具.第一次启动需要扫描二维码登录,如图1-9所示,开发权限配置参照上一小节. 2)登录后选择"添加项目".3)在填写项目信息之前,先创建一个空目录作为项目资源目录,这里我们以E:\weixin\demo为例.4)填写项目信息.如果没有AppID可以选择"无AppID":填写项目名称,

史诗手册!微信小程序新手自学入门宝典!你想要的都在这里

一.小程序官方指南 1:官方开发工具下载: https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=201714 0.12.1304Win版:https://pan.baidu.com/s/1miNleBY 0.12.1304Mac版:https://pan.baidu.com/s/1qYNIQZy 2:官方提供的简单教程 https://mp.weixin.qq.com/debug/wxadoc/dev/ 3:小程序

使用微信小程序开发前端【快速入门】_javascript技巧

前言 2016年9月22日凌晨,微信官方通过"微信公开课"公众号发布了关于微信小程序(微信应用号)的内测通知.整个朋友圈瞬间便像炸开了锅似的,各种揣测.介绍性文章在一夜里诞生.而真正收到内测邀请的公众号据说只有200个. 虽然内测名额十分稀少,但依赖中国广大开发者的破解和分享精神,在网络上很快出现了开发工具的破解版本和API文档.然而可能是微信的妥协或者早已预料,9月24日微信官方发布了不需要破解就可以使用的微信小程序开发者工具和文档,对于费劲心思破解完的开发者来说应该瞬间整个人都不好

对话《哥德尔、埃舍尔、巴赫:集异璧之大成》作者:现在的AI还不够看

有关人工智能领域的讨论,我们可以追溯到一个名叫Douglas Hofstadter,一位美国作家的往事上.自从在1979年因<Gödel, Escher, Bach: an Eternal Golden Braid>(<哥德尔.埃舍尔.巴赫:集异璧之大成>)获得普利策奖以来,72岁的Hofstadter一直在考虑"思考"这件事--如何让电脑做到这一点(思考). 美国作家Douglas Richard Hofstadter(中文名侯世达) 20世纪五.六十年代,人

不吝赐教啊-C#新手入门方法,求指点

问题描述 C#新手入门方法,求指点 C#入门新手应该从哪方面入门?目前是买了基本书轮番看,但还是理解困难,进展缓慢,求大师指点方法.有一定的嵌入式C编程基础.第一次提问,不知道问题发这可以不, 解决方案 先学习下C#特有,但是C没有的语法. 归纳下如下: 委托.事件 泛型(泛型集合.约束.泛型接口) 索引器 接口 属性 以下关键字: using lock await/async 如果你不懂C++,还需要学习下 类的定义.结构体和值类型.枚举 方法的重载 方法的重写(override virtua

mac book新手入门-快捷键

mac book新手入门-快捷键 (1)快速启动应用程序 Control+space(空格) 可以启动spotlight search 然后输入你要启动的程序,回车即可启动  类似于IDEA 中的双击Shift     (2)截图 全屏截图:Shift+cmd+3 选择区域截图:Shift+cmd+4   (3)连接远程主机的共享目录 先启动Finder cmd+k     (4)打开本地指定目录 先启动finder Shift+cmd+g   (5)触摸板 三指 往上滑,显示当前打开的程序 类

MindManager新手入门教程

MindManager是一款创造.管理和交流思想的思维导图软件,其直观清晰的可视化界面和强大的功能可以快速捕捉.组织和共享思维.想法.资源和项目进程等等.MindManager新手入门教程专为新手用户设计,包含创建思维导图基本入门操作,让用户快速上手. MindManager思维导图主要由中心主题.主题.子主题.附注主题.浮动主题.关系线等模块构成,通过这些导图模块可以快速创建您需要的思维导图,以下步骤教您如何使用MindManager创建思维导图: 第一步 打开MindManager软件,软件