一个正整数a的所有正因子之和等于b,b的所有正因子之和等于a,其中因子包括1但不包括本身,且a不等于b,则称a,b为亲密数对。

问题描述:输入n(n为int类型),计算输出≤n的所有亲密数对,亲密数对的两个数用“..”连接,例如:220..284,每个亲密数对之间用空格隔开,输出在一行里。

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

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

AC的C语言程序如下:

/* I00039 亲密数(Friend 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] <= n && i < sum[i] && sum[sum[i]] == i) {if(flag)printf(" ");flag = 1;printf("%d..%d", i, sum[i]);}printf("\n");return 0;
}

运行实例:

100000
220..284 1184..1210 2620..2924 5020..5564 6232..6368 10744..10856 12285..14595 17296..18416 63020..76084 66928..66992 67095..71145 69615..87633 79750..88730

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

I00039 亲密数(Amicable numbers)相关推荐

  1. java求亲密数,怎么写更好更快?

    求亲密数,应该是不少编程初学者都会遇到的一个题目.所谓亲密数就是,两个正整数A和B,A的所有因子之和(不包括A本身)等于B,B的所有因子之和(不包括B本身)等于A,满足这个条件的话A和B就是亲密数了. ...

  2. C语言试题六十八之请编写函数实现亲密数

    1. 题目 编写函数:求一个整数范围数字以内的全部亲密数. 亲密数:如果整数A的全部因子(包括1,不包括A本身)之和等于B:且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密 ...

  3. 第97课 寻找亲密数对_例97.1 《小学生C++编程入门》

    /* 不同的正整数 a b a的真因数之和等于b b的真因数之和等于a真因数是包括1,但不包括 这个数本身的全部因数 6 :1 2 3 求1-3000之间的全部亲密数对 */ #include< ...

  4. 信息学奥赛C++语言:趣味整数2(亲密数)

    [题目描述] 假设两个正整数A 和 B是亲密数,那么有如下的性质: 整数A的全部真约数(包括1,不包括A本身)之和等于B: 整数B的全部真约数(包括1,不包括B本身)之和等于A. 比如:220 和 2 ...

  5. (篇六)C语言求自首数、完数、亲密数

    文章目录 一.求自首数 二.求完数 三.求亲密数 本篇主要介绍C语言中求自首数.完数和自然常数e的求解算法 一.求自首数 1.自首数: 自守数是指一个数的平方的尾数等于该数自身的自然数. 自首数是按位 ...

  6. 求3000以内的亲密数

    /*** @author LLJ* @time 2020-5-5 下午10:14:44* @Description 如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子* (包括 ...

  7. 求3000以内的亲密数C语言

    题目要求:求3000以内的亲密数 这道题我第一做的时候我发现我直接就输出所有的亲密数,而说实话,按照题目的意思,A和B是不能相等的.所以我第一次做错了.这是我修改完的代码.当然主要思想还是没有变化. ...

  8. C语言求解亲密数在3000之内

    [C语言训练]亲密数 循环结构 / 枚举 空间限制:16MB时间限制:1s总提交数:2674通过率:47.49%题目来源: 站点添加 题目描述 Description 两个不同的自然数A和B,如果整数 ...

  9. 求3000以内的全部亲密数。

    15. 两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B:且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数.求3000以内的全部亲密数. 如 ...

最新文章

  1. 我的世界java测试版下载_我的世界中国版PC不删档测试版_网易我的世界JAVA版测试版单机游戏下载...
  2. 理解阻塞到底是什么回事
  3. 电脑不能打字_电脑拼音打字快速入门秘籍
  4. 电路 晶振频率_都说晶振是电路的心脏,你真的了解它吗?
  5. php 抽象类 接口 区别,php中接口、抽象类以及接口和抽象类区别详解
  6. 超好用的开源 IP 地址管理系统,告别传统 Excel 统计方式!
  7. 软件工程专业的论文答辩_软件工程毕业论文答辩PPT模板
  8. 完美tbody滚动效果
  9. 怎么用按键精灵快速开发计算距离自己最近的怪物/包裹/金矿坐标的脚本
  10. 黑盒测试方法-----状态转换图
  11. mysql结果作为另一次查询_MySql中一次查询结果用作二次查询条件
  12. 华为10误删照片怎么才能恢复回来?
  13. Ubuntu18.04安装realsense d435i SDK和ROS Wrapper以及相机标定全过程
  14. 2. Hibernate目录结构和基础JAR包介绍
  15. 问题 G: 结义兄弟
  16. AUPRC Vs 平均查准率
  17. 计算机常用删除文件的5种方法,电脑清理C盘垃圾文件的几种方法
  18. 一个小巧的WINDOWS垃圾清理工具
  19. MySql数量统计sql
  20. mysql 恢复sql文件

热门文章

  1. 聊一聊 软件系统中的“热力学第二定律”
  2. SpringBoot项目优化和Jvm调优(亲测,真实有效)
  3. 日志排查问题困难?分布式日志链路跟踪来帮你
  4. Spring Cloud第三篇:服务消费者Feign
  5. 北航学长:DCIC 2021的算法方案讲解
  6. 时间序列入门教程,从理论到业务实践,Kaggle kernels Master 整理分享
  7. 这只「蚂蚁」能拍照!普林斯顿造出微米级相机,个头缩小到50万分之一
  8. 看论文不用来回翻了,这款PDF阅读神器能自动提取前文信息,科研效率max!
  9. 终于有人把计算机视觉讲明白了
  10. 博士补贴125万,硕士70万本科21万,浙江某地人才(简直是抢人)新政!