Problem1885--【高级语言程序设计】7.5 亲密数

1885: 【高级语言程序设计】7.5 亲密数

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 5  Solved: 4
[Submit] [Status] [Web Board] [Creator:]

Description

在2500年前,数学大师毕达哥拉斯就发现,220与284两数之间存在着奇妙的联系。例如:220的真因数之和为:1+2+4+5+10+11+20+22+44+55+110=284,284的真因数之和为:1+2+4+71+142=220。毕达哥拉斯把这样的数对称为相亲数。相亲数,也称为亲密数,如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。请编写一个程序,判断两个整数m和n是否是亲密数。

Sample Input Copy

284,220

Sample Output Copy

Yes!

HINT

为了完成本关任务,你需要掌握:1.如何获取数组的长度,2.如何遍历数组。

获取数组的长度

数组的length属性用于记录数组中有多少个元素或存储单元,即记录数组的长度是多少。

  1. int[] nums = new int[10];//声明一个int型数组并动态初始化其大小为10
  2. System.out.println(nums.length);//显示当前数组的大小

输出:10

遍历数组

通俗的理解,遍历数组就是:把数组中的元素都看一遍

示例如下:

  1. int[] arr = {1,3,5,7,9};
  2. for(int i = 0 ; i<arr.length; i++){
  3. System.out.print(arr[i] + ",");
  4. }

输出:1,3,5,7,9

如何求出最大值

求数组的最大值,是不是很像打擂台呢?

对于一群人我们不知道谁最厉害,所以我们准备一个擂台,并挑选第一个人为擂主(max),擂台下的人不断的(循环)来挑战擂主,如果赢了那挑战者就是擂主,之前的擂主就下台了,直到没有挑战者了,那最后一个擂主就是最厉害的那个了。

#include <stdio.h>
int FactorSum(int x);
int main(void)
{
    //=======begin=======




    //========end========
}
//函数功能:返回x的所有因子之和
int FactorSum(int x)
{
    //=======begin=======




    //========end========
}

Source/Category