首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++经典算法题-完美数

19.Algorithm Gossip: 完美数 说明 如果有一数n,其真因数(Proper factor)的总和等于n,则称之为完美数(Perfect Number), 例如以下几个数都是完美数:...62 + 124 + 248 程式基本上不难,第一眼看到时会想到使用回圈求出所有真因数,再进一步求因数和,不过若n 值很大,则此法会花费许多时间在回圈测试上,十分没有效率,例如求小于10000的所有完美数...解法 如何求小于10000的所有完美数?并将程式写的有效率?...基本上有三个步骤: 求出一定数目的质数表 利用质数表求指定数的因式分解 利用因式分解求所有真因数和,并检查是否为完美数 步骤一 与 步骤二 在之前讨论过了,问题在步骤三,如何求真因数和?...{ int i, r, s, q; i = 0; r = 1; s = 1; q = 1; while(i c)

54430
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用C语言实现打印素数

    1.打印素数: 使⽤C语⾔写⼀个程序打印100~200之间的素数,数字中间使⽤空格分割。 素数是指只能被1和它本⾝整除的正整数。...因 此,当 2~√x 中不存在可以整除 x 的数时,√x+1~x 也不存在可以整除 x 的数 B. 利⽤反证法证明: i....假设 2 到 x-1 中不存在可以整除 x 的数,√x+1~x 中存在⼀个数 d 可以整除 x; ii....,假设是素数,变量值为1         //遍历2~当前数-1         for (j = 2; j < i; j++)         {             //存在⼀个数可以整除当前数...                flag = 0;//不是素数                 break;             }         }         if (flag == 1)//是素数就打印

    20110

    【C语言刷题系列】水仙花数的打印及进阶

    1.水仙花数问题 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数...使用C语言编程实现水仙花数的打印 首先水仙花数的范围是三位数,创建一个循环,范围是100到999 在循环内对每一个数进行判断—— 通过取模和整除的方式将三位数的每一位都剥离出来 再将每一位的3次方 相加求和...,与原来的三位数本身进行比较 如果相等,打印该数 #include int main() { for (int i = 100; i <= 999; i++) {...int a = i % 10; int b = i / 10 % 10; int c = i / 100; //分别求出整数的每一位 int sum =...a * a * a + b * b * b + c * c * c; if (sum==i) printf("%d ", i); } printf

    20010

    C语言 | 求完数

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例55:一个数如果恰好等于它的因子之和,这个数就称为完数,C语言编程找出1000之内的所有完数,并输出其因子。...解题思路:6的因子为1,2,3,而6=1+2+3,因此6是“完数”,1不用判断,直接从2开始,因为1的因子只有1 源代码演示: #include//头文件 int main()//主函数

    3.5K108

    C语言 | 判断回文数

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例86:一个五位数,C语言编程判断它是不是回文数。 解题思路:回文数是指个位与万位相同,十位与千位相同,即比如5555是回文数。...读者逐个分析即可,比较个位数与万位数,十位数与千位数,读者看着道题的时候,逐个分析即可,比较个位数与万位数,十位数与千位数。...C语言源代码演示: #include //头文件 int main()//主函数 { long individual;//个位 long ten; //十 long thousand

    3.4K32

    C语言 | 判断回文数

    例86:一个五位数,C语言编程判断它是不是回文数。 解题思路:回文数是指个位与万位相同,十位与千位相同,即比如5555是回文数。 ...读者逐个分析即可,比较个位数与万位数,十位数与千位数,读者看着道题的时候,逐个分析即可,比较个位数与万位数,十位数与千位数。...C语言源代码演示: #include //头文件  int main()//主函数  {   long individual;//个位   long ten; //十   long thousand...\n",number);   }    return 0;//主函数返回值为0  } 编译运行结果: 请输入要判断的数:66866 66866是回文数!...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线     C语言开发工具 更多案例可以go公众号:C语言入门到精通

    3.9K22

    C语言 | C++打印有效日志

    引言 在日常代码测试或运行中,打印日志检测代码运行状态必不可少。...先举三个例子: 在物联网系统中设备什么时候上线,可以将上线的信息写入数据库,也可以将该设备上线的记录打印到日志中,以该设备的id为文件名,查找日志也比较方便,上线时间、IP地址等打印到文本中。...在复杂的多环节系统中,快速定位问题问题出错的环节,将各个系统数据接口的数据打印日志,如果有返回值可以判断执行是否成功,可以只打印错误的日志,出现问题时查看日志文件就可以定位是那个环节。...而且,最好在打印日志时输出英文,防止中文不支持而打印出乱码的情况。 日志的性能 无论我们把日志写到文件还是数据库,都需要消耗IO资源。适当的控制日志的输出也有利于提高程序的性能。...例如:尽量避免在在大的循环中打印意义不大的日志内容。输出日志之前最好能判断日志的级别(例如. debug前先调用isDebugEnabled()作出判断)。

    2.1K88
    领券
    首页
    学习
    活动
    专区
    圈层
    工具