Hdu2040 亲和数

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2040

亲和数

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 57004    Accepted Submission(s): 34670

Problem Description

古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为:

1+2+4+5+10+11+20+22+44+55+110=284。

而284的所有真约数为1、2、4、71、 142,加起来恰好为220。人们对这样的数感到很惊奇,并称之为亲和数。一般地讲,如果两个数中任何一个数都是另一个数的真约数之和,则这两个数就是亲和数。

你的任务就编写一个程序,判断给定的两个数是否是亲和数

Input

输入数据第一行包含一个数M,接下有M行,每行一个实例,包含两个整数A,B; 其中 0 <= A,B <= 600000 ;

Output

对于每个测试实例,如果A和B是亲和数的话输出YES,否则输出NO。

Sample Input

2
220 284
100 200

Sample Output

YES
NO

有点意思 用一个函数 交换下参数位置就行了

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 int n,m,t;
 5 int deal(int x,int y)
 6 {
 7     int sum=0;
 8     for(int i=1;i<x;i++){
 9         if(x%i==0){
10             sum+=i;
11         }
12     }
13     return sum==y;
14 }
15 int main()
16 {
17     while(cin>>t){
18         while(t--){
19             cin>>n>>m;
20             if(deal(n,m)&&deal(m,n)) cout<<"YES"<<endl;
21             else cout<<"NO"<<endl;
22         }
23     }
24     return 0;
25 }

原文地址:https://www.cnblogs.com/shixinzei/p/10674285.html

时间: 2024-11-13 06:34:34

Hdu2040 亲和数的相关文章

[hdu-2040] 亲和数

亲和数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 20184    Accepted Submission(s): 12195 Problem Description 古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284. 而2

《程序设计技术》课程辅助学习资料

本文档提供课程相关的辅助学习资料. 阅读程序是提高程序设计水平的最为有效的方法,<程序设计技术>课程至少应该阅读后面提供链接博文中的基础部分.能够阅读完基础部分的博文,则可以给课程学习奠定一个坚实的基础. 自己编写程序也是学习编程必不可少的一个环节.自己编写是否正确可以通过OJ系统来验证.选做OJ的程序设计题方便于评价自己所写的程序是否正确.想要提高编写程序的能力并且达到更高的水平,从各个OJ中选做一些编程题是十分必要的. 文中提供了CCF-CSP认证考试历年 试题的第1题的题解.这些题解中都

Python练习题 048:Project Euler 021:10000以内所有亲和数之和

本题来自 Project Euler 第21题:https://projecteuler.net/problem=21 ''' Project Euler: 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

HDU 2040:亲和数

亲和数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 20775    Accepted Submission(s): 12590 Problem Description 古希腊数学家毕达哥拉斯在自然数研究中发现,220的全部真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284. 而2

杭电OJ -- 2040 亲和数

#include <iostream> using namespace std; int qh_num(int a)//该函数主要用来获得数a的亲和数 { int sum = 0; for(int i = 1; i <= (int)a / 2; ++i) { if (a % i == 0) sum += i; } return sum; } int main() { int m; int a, b; cin >> m; while (m--) { cin >> a

500万以内的亲和数

//时间复杂度为O(N*log(N))//时间复杂度准确做法://n * (1 + 1/2 + 1/3 + 1/4 + ..... + 1/n) ~~ N*InN//所以第二个for循环的时间复杂度约为O(N*log(N)) #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <map>

亲和数

Problem Description 古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284. 而284的所有真约数为1.2.4.71. 142,加起来恰好为220.人们对这样的数感到很惊奇,并称之为亲和数.一般地讲,如果两个数中任何一个数都是另一个数的真约数之和,则这两个数就是亲和数. 你的任务就编写一个程序,判断给定的两个数是否是亲和数 Input 输入数据第一行包含一个数M,接下有M行,

Project Euler 95:Amicable chains 亲和数链

Amicable chains The proper divisors of a number are all the divisors excluding the number itself. For example, the proper divisors of 28 are 1, 2, 4, 7, and 14. As the sum of these divisors is equal to 28, we call it a perfect number. Interestingly t

大数亲和数对的求法 友元数对

做了几天的亲和数对,今天晚上终于ac了,不容易呀,下面讲一讲我的做法吧,希望能够帮助大家 题目如下: 题目描述 数字220和284是一对友元数字,因为220的所有因子的和是284,284的所有因子的和是220. 你能在小于10000的数中找出有多少对友元数字么?那是必须的. 你的任务是在给定的区间[a,b]中找出有多少对友元数字. 输入 有多组测试数据. 每组数据包括两个整数a,b(1<=a<=b<=5000000). 输入到文件末尾. 输出 对于每组输入,输出在该区间内的有多少对友元数