`

(Problem 21)Amicable numbers

阅读更多

Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n).
If d(a) = b and d(b) = a, where a ≠ b, then a and b are an amicable pair and each of a and b are called amicable numbers.

For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220.

Evaluate the sum of all the amicable numbers under 10000.

 

原题大意:

d(n)定义为n 的所有真因子(小于 n 且能整除 n 的整数)之和。
如果 d(a) = b 并且 d(b) = a, 且 a ≠ b, 那么 a 和 b 就是一对相亲数(amicable pair),并且 a 和 b 都叫做亲和数(amicable number)。

例如220的真因子是 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 和 110; 因此 d(220) = 284. 284的真因子是1, 2, 4, 71 和142; 所以d(284) = 220.

计算10000以下所有亲和数之和。

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
#include<stdbool.h>

int FactorSum(int n)  //计算n的所有小于n的因素和
{
	int i;
	int sum=1;
	for(i=2; i<=n/2; i++)
	{
		if(n%i==0)
			sum+=i;
	}
	return sum;
}

int main()
{
	int t,i=2;
	int sum=0;
	while(i<10000)
	{
		t=FactorSum(i);
		if(t!=i && FactorSum(t)==i) 
			sum+=i;
		i++;
	}
	printf("%d\n",sum);
	return 0;
}

 

Answer:
31626
分享到:
评论

相关推荐

    100题全.zip_matlab solve_noj亲和数_variousivw_你会存钱吗noj

    亲和数(Amicable Numbers)是数论中的一个概念,指的是两个不同的正整数A和B,它们各自的真因数之和(除去自身以外的因数之和)相等。例如,220和284就是一对亲和数,因为220的真因数之和为284,而284的真因数之和...

    输入一个正整数作为范围,然后程序会找出在该范围内的完数.pdf

    在数学领域,研究完数有一定的理论价值,因为它与数论中的其他概念,如amicable numbers(友数)和abundant numbers(过剩数)等有关联。 上述C语言程序的目标是找到用户输入范围内所有的完数。程序分为以下几个...

    C++_data structure7

    从标题和描述来看,我们可以深入探讨两个数学概念——亲密数(amicable numbers)和自守数(self numbers),以及一个特定的数字性质——abcd=(ab+cd)²。 **1. 亲密数** 亲密数是一对整数,它们各自的真因数之和...

    is-amicable:知道数字是否友好的简单函数

    友善的 知道数字是否友好的简单函数安装npm i - S is - amicable用法var isAmicable = require ( 'is-amicable' ) ;console . log ( isAmicable ( 220 ) ) ; // trueconsole . log ( isAmicable ( 284 ) ) ; // ...

    相亲数和亲和数优化源码

    相亲数(Amicable Numbers)是指两个正整数A和B,它们各自的所有真因数之和等于对方,即(A的所有真因数之和) = (B的所有真因数之和),且A不等于B。寻找和理解相亲数是基础数学教育的一部分,同时也是算法设计和优化...

    10000以内的亲密数

    亲密数(Amicable numbers),是数学中一对特殊的自然数对,其中每个数都是另一个数的真因子之和。真因子指的是除了自身以外的所有因子。例如,如果数字A的所有真因子之和等于B,同时B的所有真因子之和又恰好等于A,...

    文档博客1.docx

    在数学领域,亲和数(Amicable numbers)是指两个不同的自然数,其中一个数的所有真因子(即不包括自身在内的因子)之和恰好等于另一个数,反之亦然。例如,如果自然数\(a\)的因子之和为\(b\)(不包括\(a\)本身),...

    亲密数.zip

    在`main`函数中,我们设置了搜索范围(这里是1到1000),然后调用`find_amicable_pairs`打印出该范围内的所有亲密数对。用户可以根据需要调整`range`变量的值来扩大或缩小搜索范围。 C语言作为一门底层且高效的编程...

    project-euler:嘿为什么不

    例如,欧拉项目的一个经典问题是“找出所有不超过1000的自然数,它们的因子之和等于其本身”,即所谓的“amicable numbers”。在这个问题中,你可能看到Python代码如何使用循环、列表推导式和条件语句来生成和检查数...

    CSharpSkills:用C#解决Euler项目中的问题1-60

    例如,第21题求解amicable numbers,可能需要结合搜索和回溯策略。 8. **性能优化**:由于欧拉项目中某些问题的规模较大,因此代码必须考虑时间复杂度和空间复杂度,以确保程序在合理的时间内运行完成。 9. **字符...

    广义Fermat数中的孤立数 (2006年)

    在数论中,与之相对的概念是相亲数(amicable numbers),即两个不同的正整数,它们各自的真因子(即除了自身以外的所有因数)之和等于对方。而孤立数是唯一没有配对的数,它们在数轴上“孤立”存在。 文章中出现的...

    雅思口语素材

    Being amicable Granted he is as busy as scores of celebrities, he never poses up with a poker face. In stead, he always takes the initiative to greet and communicate with others. Being considerate ...

    英文简历常用词汇大全

    - **例句**:Audacious in my approach to problem-solving, I often seek innovative solutions that others might overlook. ##### 12. 有能力的/有才能的 (Capable) - **释义**:具备完成特定任务所需的技能和...

    形容人品英文词汇.doc

    2. **Positive Qualities**:文档中包含许多积极正面的形容词,如“ambitious”(有雄心壮志的)、“amicable”(友好的)、“apprehensive”(有理解力的)等,这些词汇可以用来赞美他人的优点。 3. **...

    友好数:计算两个整数、上限和下限之间的友好对的函数。-matlab开发

    将 'amicable.m' 文件放入您的 MATLAB 路径或工作目录并调用以下语法。 函数语法: 输出=友好(N2,N1) 其中,N2 为上限,N1 为下限,均为正整数。 如果只给出一个数字,则认为是上限, 默认的下限是 220(因为...

    高考英语词汇常见形近单词.doc

    20. amicable, amiable: amicable 描述友好和谐的关系,amiable 则指和蔼可亲的性格。 21. assent, ascent: assent 表示同意,ascent 则指上升或晋升。 22. avert, avoid: avert 防止或避免,avoid 侧重于避开。 ...

    TOEFL词汇精选17天巧记打印版

    例如,Unit One中讲述了一个寓言故事,涉及到了多个核心词汇,如adversity(逆境)、allegory(寓言)、affable(和蔼可亲)、adore(崇拜)、amicable(友好的)、affluence(富裕)、accost(搭讪)、alleged...

Global site tag (gtag.js) - Google Analytics