博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Project Euler] Problem 21
阅读量:5096 次
发布时间:2019-06-13

本文共 967 字,大约阅读时间需要 3 分钟。

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),如果d(d(n))=n,并且n!=d(n)那么n就是符合要求的数

我们直接暴力搜索

#include
<
iostream
>
#include
<
cmath
>
using
namespace
std;
int
d(
int
tmp){
int
sum
=
0
;
int
i;
for
(i
=
1
; i
<
sqrt(tmp); i
++
){
if
(tmp
%
i
==
0
){
sum
=
sum
+
i
+
tmp
/
i;
}
}
if
(i
*
i
==
tmp){
sum
+=
i;
}
return
sum
-
tmp;
}
int
main(){
int
sum
=
0
;
for
(
int
i
=
1
; i
<
10000
; i
++
){
if
(i
==
d(d(i))
&&
i
!=
d(i)){
sum
+=
i;
}
}
cout
<<
sum
<<
endl;
return
0
;
}

转载于:https://www.cnblogs.com/xianglan/archive/2011/03/05/1971565.html

你可能感兴趣的文章
Scrapy实战篇(三)之爬取豆瓣电影短评
查看>>
HDU 5510 Bazinga KMP
查看>>
[13年迁移]Firefox下margin-top问题
查看>>
Zookeeper常用命令 (转)
查看>>
Enterprise Library - Data Access Application Block 6.0.1304
查看>>
重构代码 —— 函数即变量(Replace temp with Query)
查看>>
Bootstrap栅格学习
查看>>
程序员的数学
查看>>
聚合与组合
查看>>
洛谷 P2089 烤鸡【DFS递归/10重枚举】
查看>>
我眼中的技术地图
查看>>
lc 145. Binary Tree Postorder Traversal
查看>>
在centos上开关tomcat
查看>>
无人值守安装linux系统
查看>>
黑马程序员——2 注释
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
查询消除重复行
查看>>
[leetcode]Minimum Path Sum
查看>>
内存管理 浅析 内存管理/内存优化技巧
查看>>