友好数

问题描述:
有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的。例如:
9的约数和有:1+3=4
4的约数和有:1+2=3
所以9和4不是友好的。
220的约数和有:1 2 4 5 10 11 20 22 44 55 110=284
284的约数和有:1 2 4 71 142=220
所以220和284是友好的。
编写程序,判断两个数是否是友好数。

输入格式:
一行,两个整数,由空格分隔

输出格式:
如果是友好数,输出" yes" ,否则输出" no" ,注意不包含引号。

样例输入:
220 284

样例输出:
yes

数据规模和约定:
两个整数都小于10000

c语言参考代码:

#include <stdio.h>

int main()
{
    
    
  int n,m;
  scanf("%d%d",&n,&m);
  
  int i,sum1=0,sum2=0;
  for(i=1;i<n;i++)
  {
    
    
  	if(n%i==0)
  	 sum1+=i; 
  }
  for(i=1;i<m;i++)
  {
    
    
  	if(m%i==0)
  	 sum2+=i;
  }
  
  if(sum1==m&&sum2==n)
   printf("yes");
  else
   printf("no");
  return 0;
} 

java参考代码:

import java.util.Scanner;

public class Main {
    
    
 public static void main(String[] args) {
    
    
	Scanner sc= new Scanner(System.in);
	int n=sc.nextInt();
	int m=sc.nextInt();
	
	int sum1=0,sum2=0;
	for(int i=1;i<n;i++)
	{
    
    
		if(n%i==0)
		 sum1+=i;
	}
	for(int i=1;i<m;i++)
	{
    
    
		if(m%i==0)
		 sum2+=i;
	}
	
	if(sum1==m&&sum2==n)
	 System.out.println("yes");
	else 
	 System.out.println("no");
 }
}

参考链接:
传送门

猜你喜欢

转载自blog.csdn.net/qq_46139801/article/details/115333648
今日推荐