Implementar un algoritmo que determine si dos números son amigos.
Solución
Ingresamos dos números a los cuales les extraeremos sus divisores para luego determinar si estos números son amigos
Ejemplo
- Entrada: 220 y 284
Suma de Divisores 284: 1+2+4+71+142 = 220
Son amigos por que la suma de los divisores de un número es igual al otro número.
- Salida: Son números amigos
#include <iostream> using namespace std; int suma(int N,int S){ for(int i=2;i<N;i++){ if(N % i==0){ S=S+i; } } return S; } int main(){ int n1,n2; int sum1=1,sum2=1; cout<<"ingrese el primer numero"<<endl; cin>>n1; cout<<"ingrese el segundo numero"<<endl; cin>>n2; sum1=suma(n1,sum1); sum2=suma(n2,sum2); if((sum1==n2)&&(sum2==n1)){ cout<<"los numeros "<<n1<<" y "<< n2<<" Si son numeros amigos"; }else{ cout<<"los numeros "<<n1<<" y "<< n2<<" No son numeros amigos"; } return 0; }
11 comentarios:
Alguien podría realizar este mismo ejercicio en lenguaje C??
#include
int suma(int N,int S){
for(int i=2;i<N;i++){
if(N%i==0){
S=S+i;
}
}
return S;
}
int main(){
int num1,num2;
int sum1=1,sum2=1;
printf("ingrese el primer numero \n");
scanf("%d",&num1);
printf("ingrese el segundo numero \n");
scanf("%d",&num2);
sum1=suma(num1,sum1);
sum2=suma(num2,sum2);
if((sum1==num2)&&(sum2==num1)){
printf("Los numeros %d y %d son amistosos \n",num1,num2);
}else{
printf("Los numeros %d y %d no son amistosos :( \n");
}
return 0;
}
pro que me da un erros ?
int suma(int N,int S){
for(int i=2;i<N;i++){
if(N % i==0){
S=S+i;
Error es que el doctor te dejó nacer :3
Y en java como seria ?
Será que me lo puedes resolver en lazarus
na
lo tienen en matlab depronto , seria genial amigos
y como se haria para conseguir automaticamente otro numeros amigos??
Alguien sabe dónde lo encuentro en lenguaje Java
Publicar un comentario