[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。

而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
import java.util.Scanner;

public class Main {

	static int getSum(int temp) {
		int sum = 0;
		for (int i = 2; i <= temp / 2; i++) {
			if (temp % i == 0) {
				sum += temp % i == i ? i : temp % i + i;
			}
		}
		return sum + 1;
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int m = scanner.nextInt();

		while (m-- != 0) {
			int a = scanner.nextInt();
			int b = scanner.nextInt();

			int sum1 = getSum(a);
			int sum2 = getSum(b);

			if (sum1 == b && sum2 == a) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		}
	}
}

[hdu-2040] 亲和数,布布扣,bubuko.com

时间: 2024-10-06 01:04:20

[hdu-2040] 亲和数的相关文章

hdu 2040 亲和数 (java)

问题: 开始给for循环的J设置了小于根号a,导致约数没有全部得到. 亲和数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 26302    Accepted Submission(s): 15814 Problem Description 古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为: 1+

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

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的所有真约数(

致初学者(三): HDU 2033~ 2043题解

下面继续给出HDU 2033~2043的AC程序,供大家参考.2033~2043这10道题就被归结为“ACM程序设计期末考试(2006/06/07) ”和“2005实验班短学期考试 ”. HDU 2033:人见人爱A+B 简单分支结构. #include <stdio.h> int main() { int n,ah,am,as,bh,bm,bs; scanf("%d",&n); while (n--) { scanf("%d%d%d%d%d%d"

·专题」 KMP

KMP 总结 1.strstr函数 |函数名: strstr |功 能: 在串中查找指定字符串的第一次出现 |用 法: char *strstr(char *str1, char *str2); |据说strstr和KMP的算法效率差不多|注意:返回的是该字符串第一次出现时的指针,所以如果要计算下标,可以用原字符串首地址-返回的地址. 因为这样,还可以直接输出余下的字符串 1 int main() 2 { 3 char T[] = {"I love you ,do you know?"

转载:hdu 题目分类 (侵删)

转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093. 1094.1095.1096.1097.1098.1106.1108.1157.116

HDU分类

模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 1177 1197 1200 1201 12

hdoj 2040

#include<stdio.h>int i,j,s1,s2;int cha(int a,int b){ s1=0; s2=0;   for(i=1;i<a;i++)   {    if(a%i==0) s1+=i;   }   for(i=1;i<b;i++)   {    if(b%i==0) s2+=i;   }   if(s1==b&&s2==a) printf("YES\n");   else printf("NO\n&quo

HDU——PKU题目分类

HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 1177 1197 1200 1201