关闭

I00036 盈数(Abundant number)

标签: 盈数Abundant number
447人阅读 评论(0) 收藏 举报
分类:

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

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

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

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

AC的C语言程序如下:

/* I00036 盈数(Abundant number) */

#include <stdio.h>
#include <memory.h>

#define MAXN 40000000

int 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


1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

基于IB(Interactive Brokers)盈透证券的股票及期货行情获取讲解

盈透证券,作为老牌帝国主义券商,能够提供强到变态的交易平台TWS,多到变态的全球股票、期货等产品覆盖,以及低到变态的交易费用。如果做全球股票或期货交易,能够对接盈透证券相关接口还是不错的选择,但是这里...
  • u013085897
  • u013085897
  • 2017-04-03 10:51
  • 12117

盈透证券 简单API 实战

1. 需求把每日的操作固定下来后,每天提交订单是一件非常麻烦的事情。盈透证券的TWS支持收市订单,即在北京时间早上4:00下单。但是这种订单类型不支持条件。比如我要在4:00 的时候下单购买 SP-Y...
  • fox64194167
  • fox64194167
  • 2016-07-31 17:38
  • 5016

《派派APP》实现方式、运营模式、盈利手段

最近微信朋友圈很多人传播一款名叫派派的APP,于是我也下载了这款软件,结合自己做过婚恋服务、直播、运单仓库、游戏、以及围绕微信一系列产品等等,再认真分析这款软件,大体能比较清楚解说如题之道。从产品功能...
  • liyanspace88888888
  • liyanspace88888888
  • 2017-04-27 11:19
  • 2511

Problem 23 Non-abundant sums (盈数)

Non-abundant sums Problem 23 A perfect number is a number for which the sum of its proper ...
  • liangzhaoyang1
  • liangzhaoyang1
  • 2016-10-28 13:42
  • 223

LeetCode (39) Ugly Number I II (丑数)

Ugly Number I 和 Ugly Number II
  • angelazy
  • angelazy
  • 2015-09-22 21:12
  • 899

LeetCode Ugly Number i,ii详解

// Date : 2016.07.25 // Author : yqtao // https://github.com/yqtaowhu/**************************...
  • taoyanqi8932
  • taoyanqi8932
  • 2016-07-25 12:05
  • 216

杭电 HDU 4608 I-number

http://acm.hdu.edu.cn/showproblem.php?pid=4608 听说这个题是比赛的签到题。。。。。。无语。。。。。 问题:给你一个数x,求比它大的数y。 y的要求...
  • wqc359782004
  • wqc359782004
  • 2013-07-25 12:15
  • 1018

<LeetCode OJ> 26 / 264 / 313 Ugly Number (I / II / III)

263. Ugly Number My Submissions Question Total Accepted: 33755 Total Submissions: 96873 Difficul...
  • EbowTang
  • EbowTang
  • 2015-12-26 16:06
  • 956

Single Number I+II+III

Expected:linear runtime complexity, constant space complexity.(像当初的我直接用关联容器暴力解决…)Single Number IGiv...
  • qq_20581563
  • qq_20581563
  • 2016-04-29 17:31
  • 319

HDOJ 4608 I-number

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=4608 I-number Time Limit: 10000/5000 MS (Ja...
  • u012560612
  • u012560612
  • 2014-12-13 19:19
  • 678
    个人资料
    • 访问:893212次
    • 积分:20391
    • 等级:
    • 排名:第471名
    • 原创:1075篇
    • 转载:87篇
    • 译文:0篇
    • 评论:401条
    文章分类
    博客专栏
    最新评论