基础知识
什么是亲密数对:两个整数A,B,A除它本身之外的所有的因子之和等于B,同时B除它本身之外的所有的因子之和等于A,那么这两个整数就被称之为亲密数对。
例子:220除它本身之外的因子(能够整除该数而没有余数的数)是1,2,4,5,10,11,20,22,44,55,110(我更喜欢这么写:1,2,110,4,55,5,44,10,22,11,20),其和为1+2+4+5+10+11+20+22+44+55+110=284;而284除它本身之外的因子是1,2,4,71,142,其和为1+2+4+71+142=220。两者符合亲密数对的定义,故220与284互为亲密数对。
用C++程序求亲密数对
要求:求6~10000内所有的亲密数对
C++程序设计:
//写一个求6~10000里的亲密数对的C++程序
//程序进行设计的思路:
//1.找出给定范围内某数的除它本身以外的所有因数并求和
//2.与另外范围内某数进行是否=的判断:<1>两数分别与两和==——>为亲密数对
// <2>两数分别与两和!=——>不为亲密数对
#include<stdio.h>
int Sumys(int a)
{
int i, sum = 0;
for (i = 1; i < a; i++)
{
if (a % i == 0)
sum = sum + i;
}
return sum;
}
//创建一个函数完成任务1
void main()
{
int j, k;
for (j = 6; j <= 10000; j++)
{
for (k = 6; k < j; k++)
{
if (Sumys(j) ==k&& Sumys(k)==j)
printf("%d和%d互为亲密数对", j,k);
}
}
}
//进行任务2的判断
运行程序之后就可以得到结果,但是代码在我的电脑的Visual Studio 2022里面编译的速度太慢,我也不太清楚是哪里出了问题,明天去问问我的编程老师,再在明天的博文中进行说明。
我自己的电脑和下载的vs6.0存在某些冲突,而Visual Studio 2022老师告诉我说它要求的配置比较高,我的电脑带不动。
本文介绍了如何使用C++编写程序来查找6到10000之间的亲密数对,程序设计包括找出给定数的因子之和并与另一个数进行比较。然而,作者提到程序在VisualStudio2022中运行较慢,可能由于配置问题。
860

被折叠的 条评论
为什么被折叠?



