Número amistoso

Descripción del problema:
Hay dos números enteros, si la suma de los divisores de cada número entero (excepto él mismo) es igual entre sí, llamamos amigable al par de números. Por ejemplo:
La suma de los divisores de 9 es: 1 + 3 = 4
La suma de los divisores de 4 es: 1 + 2 = 3,
por lo que 9 y 4 no son amigos.
La suma de los divisores de 220 es: 1 2 4 5 10 11 20 22 44 55 110 =
284 La suma de los divisores de 284 es: 1 2 4 71 142 = 220,
entonces 220 y 284 son amistosos.
Escribe un programa para determinar si dos números son números amigos.

Formato de entrada:
una línea, dos enteros, separados por espacios

Formato de salida:
Si es un número amigable, escriba "sí", en caso contrario, "no", tenga en cuenta que las comillas no están incluidas.

Entrada de muestra:
220284

Salida de muestra:

Escala de datos y convención:
ambos números enteros son menores que 10000

código de referencia del lenguaje 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;
} 

código de referencia de 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");
 }
}

Enlace de referencia:
Portal

Supongo que te gusta

Origin blog.csdn.net/qq_46139801/article/details/115333648
Recomendado
Clasificación