数论中,若一个正整数除了本身之外所有因子之和比此数自身大,则称此数为盈数。盈数(Abundant number)也称为丰数或过剩数,参见百度百科_盈数,或参见维基百科的Abundant number。亏数在OEIS中的数列号为A005101。

问题描述:输入n(n≤40000000),计算输出≤n的所有盈数,每个数之间用空格隔开,输出在一行里。

问题分析:可以使用筛选法原理计算各个数的因子之和,然后再判定输出。

程序说明:数组sum[]中存放除了自身之外的因子之和,例如sum[i]中存放除了i以外的i的因子之和。

AC的C语言程序如下:

/* I00036 盈数(Abundant number) */#include <stdio.h>
#include <memory.h>#define MAXN 40000000int sum[MAXN+1];void maketable(int n)
{memset(sum, 0, sizeof(sum));sum[1] = 0;int i=2, j;while(i<=n) {sum[i]++;j = i + i;      /* j=ki, k>1 */while(j <= n) {sum[j] += i;j += i;}i++;}
}int main(void)
{int n, flag, i;scanf("%d", &n);maketable(n);flag = 0;for(i=1; i<=n; i++)if(sum[i] > i) {if(flag)printf(" ");flag = 1;printf("%d", i);}printf("\n");return 0;
}

运行实例:

999
12 18 20 24 30 36 40 42 48 54 56 60 66 70 72 78 80 84 88 90 96 100 102 104 108 112 114 120 126 132 138 140 144 150 156 160 162 168 174 176 180 186 192 196 198 200 204 208 210 216 220 222 224 228 234 240 246 252 258 260 264 270 272 276 280 282 288 294 300 304 306 308 312 318 320 324 330 336 340 342 348 350 352 354 360 364 366 368 372 378 380 384 390 392 396 400 402 408 414 416 420 426 432 438 440 444 448 450 456 460 462 464 468 474 476 480 486 490 492 498 500 504 510 516 520 522 528 532 534 540 544 546 550 552 558 560 564 570 572 576 580 582 588 594 600 606 608 612 616 618 620 624 630 636 640 642 644 648 650 654 660 666 672 678 680 684 690 696 700 702 704 708 714 720 726 728 732 736 738 740 744 748 750 756 760 762 768 770 774 780 784 786 792 798 800 804 810 812 816 820 822 828 832 834 836 840 846 852 858 860 864 868 870 876 880 882 888 894 896 900 906 910 912 918 920 924 928 930 936 940 942 945 948 952 954 960 966 968 972 978 980 984 990 992 996

转载于:https://www.cnblogs.com/tigerisland/p/7564321.html

I00036 盈数(Abundant number)相关推荐

  1. d010:盈数、亏数和完全数

    题目: 对一个正整数N而言,将它除了本身以外所有的因子加起来的总和为S,如果S>N,则N为盈数,如果S<N,则N为亏数,而如果S=N,则N为完全数(Perfect Number).例如10 ...

  2. 完全数(亏数、盈数)、三角形数、棱锥体数、正方形数

    所有的完全数都是三角形数: 1. 完全数与亏数.盈数 1.1 完全数 如果一个数恰好等于它的因子之和,则称该数为"完全数".各个小于它的约数(真约数,列出某数的约数,去掉该数本身, ...

  3. C语言强数Strong number算法(附完整源码)

    强数Strong number算法 何为Strong number强数 C语言强数Strong number算法完整源码(定义,实现,main函数测试) 何为Strong number强数 强数是一个 ...

  4. C语言实现阿姆斯特朗数armstrong number算法(附完整源码)

    阿姆斯特朗数armstrong number 实现阿姆斯特朗数armstrong number算法的完整源码(定义,实现,main函数测试) 实现阿姆斯特朗数armstrong number算法的完整 ...

  5. Java实现查找2-60以内的完数和盈数

    package Four; /** 一个数,如果恰好等于它的各个因子(该数本身除外)之和,如6=3+2+1,那么称该数为完数* 若因子之和大于该数,则称其为"盈数",求2到60之间 ...

  6. 九度OJ 1060:完数VS盈数 (数字特性)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5590 解决:2093 题目描述: 一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1.则称其为"完数" ...

  7. python因数之和等于数字本身,完全数,盈数,亏数到底是什么鬼?python实现给你看...

    说起<几何原本>,那是数学中神一般的存在,它奠定了现代几何的基础.而其作者就是大名鼎鼎的欧几里得,在数学史上当然也是一个伟大的奠基人,而且以高产著称,其中,完全数就是他发现的. 完全数,定 ...

  8. python 查询周数 week number

    python里面查询某一天所处的周数week number时,有比较多的方法, 自己觉得下面这个方法特别棒,在一些方面的处理非常合理. 每年的最后一天必然是12月31日,是12月的最后一天,但这天不一 ...

  9. 卡特兰数 Catalan number

    卡特兰数 Catalan number 卡特兰数前几项为 : 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 74290 ...

最新文章

  1. Nature科学报告:根据大脑思维意图来生成对应匹配的图像
  2. JZOJ__Day 9:【普及模拟】Square
  3. python求解微分方程组_python – SymPy / SciPy:求解具有不同变量的常微分方程组...
  4. 计算机网络讨论课感悟,计算机网络课程学习心得体会
  5. 为Pokémon Go而生的聊天软件GoChat,坐拥百万用户却快要破产
  6. 如何使用视频转换器将ogg格式转换为MP3格式
  7. struts2 拦截器_Struts 2拦截器示例
  8. HTML罗盘时钟代码
  9. 南网elink文件保存位置_ELINK使用说明
  10. php百度网盘登录,php百度网盘同步_http200_mmdb
  11. 酒店管理系统java代码_基于Spring开发的Java酒店管理系统 源码下载
  12. Matlab求特征值和特征向量 + find函数的基本简单用法
  13. 计算机显示器的分辨率可以调节吗,电脑分辨率何如调?电脑无法调整屏幕分辨率怎么办?...
  14. 电脑PE系统无法进入,完整详细解决方案
  15. html5游戏 美术,cocos2d-html5游戏学习之绘画小熊
  16. python 读取行数据_openpyxl读取所有行数据之rows属性
  17. (自用随笔)PAT A1010
  18. win10升级Java版本
  19. 关于面试总结2-SQL学生表
  20. layui.layer 弹出层使用

热门文章

  1. sqlserver08评估期已过的解决方法
  2. 排难解惑 为您解开系统无法添加打印机之谜!
  3. [转载]url带中文参数显示乱码的问题
  4. Java集合(一、HashMap)
  5. Linux下Eclipse给工程配置(附加库目录)
  6. 大数据之-Hadoop环境搭建_hadoop官网手册---大数据之hadoop工作笔记0020
  7. ES6新特性_ES6箭头函数的实践以及应用场景---JavaScript_ECMAScript_ES6-ES11新特性工作笔记010
  8. large margin-人脸识别
  9. c++的学习笔记之二
  10. unsigned char bcd串乱码问题解决