elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Numeros amigos y numeros perfectos programa en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Numeros amigos y numeros perfectos programa en C  (Leído 5,630 veces)
estudiante_1

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Numeros amigos y numeros perfectos programa en C
« en: 11 Agosto 2015, 12:59 pm »

Enunciado: Dos números amigos son dos números enteros positivos a y b tales que la suma de los divisores propios de uno es igual al otro número y viceversa, es decir σ(a)=b y σ(b)=a, donde σ(n) es igual a la suma de los divisores de n, sin incluir a n. (La unidad se considera divisor propio, pero no lo es el mismo número.)

Un ejemplo es el par de naturales (220, 284), ya que:

los divisores propios de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110, que suman 284;
los divisores propios de 284 son 1, 2, 4, 71 y 142, que suman 220.
Si un número es amigo de sí mismo (es igual a la suma de sus divisores propios), recibe entonces el nombre de número perfecto.
  Mi programa me va bien a la hora de decir si dos números son amigos, el problema lo tengo a la hora de decir si es perfecto. Ayúdenme.
Código:
#include<stdio.h>
#include<stdlib.h>


     int pedir_numero(char mensaje[]){
       int n;
       printf("%s\n",mensaje);
       scanf("%d",&n);
       while(n<0){
         printf("%s\n",mensaje);
         scanf("%d",&n);
       }
       return(n);
     }

     int suma_divisores(int n){
     int i,r,suma;
      suma=0;
      for(i=1;i<n;i++){
        r=n%i;
        if(r%i==0) suma=suma+i;
      }
      return(suma);
     }

    int sonamigos(int n1,int n2){
      int suma1,suma2;

      suma1 = suma_divisores(n1);
      suma2 = suma_divisores(n2);
      if ((suma1==n2)&& (suma2==n1)) return 1;
      else return 0;
    }


      int perfecto(int n3){
int suma3;
      (suma3==suma_divisores(n3));
      if(suma3==n3) return 1;
      else return 0;


      }


int main(void){
int n1,n2,n3;
int suma;

n1=pedir_numero("Dime el primer numero\n");
n2=pedir_numero("Dime el segundo numero\n");

if (sonamigos(n1,n2)) printf("\nSi son amigos\n");
else printf("\nNo son amigos\n");
n3=pedir_numero("Dime el tercer numero y veremos si es perfecto\n");
if(perfecto(n3)) printf("%d es perfecto\n",n3);
else printf("%d no es perfecto\n",n3);
system("Pause");
return(0);
}



















Gracias, de verdad.


« Última modificación: 11 Agosto 2015, 13:03 pm por estudiante_1 » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Numeros amigos y numeros perfectos programa en C
« Respuesta #1 en: 11 Agosto 2015, 14:38 pm »

Pusiste suma3==suma_divisores(n3). No es "==", es "=".

En cualquier caso, te es más rápido poner:
Código
  1. int perfecto(int n3){
  2.    if(suma_divisores(n3)==n3) return 1;
  3.    else return 0;
  4. }


En línea

estudiante_1

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Numeros amigos y numeros perfectos programa en C
« Respuesta #2 en: 11 Agosto 2015, 23:51 pm »

Gracias, vaya error que he tenido.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa para hallar números amigos « 1 2 »
Programación General
Charderak 14 23,192 Último mensaje 27 Junio 2010, 19:26 pm
por Charderak
Programa en C que imprime los primeros m números perfectos
Programación C/C++
ERIK546 3 22,408 Último mensaje 29 Junio 2012, 21:36 pm
por ERIK546
Números perfectos (lenguaje C) « 1 2 3 »
Programación C/C++
NOB2014 22 12,634 Último mensaje 30 Septiembre 2014, 04:34 am
por rir3760
[C++] [?] Numeros perfectos
Programación C/C++
-JohnWalls 2 3,069 Último mensaje 7 Diciembre 2014, 20:33 pm
por -JohnWalls
Programa Numeros Perfectos C++
Programación C/C++
HIDE_95 2 3,865 Último mensaje 4 Agosto 2015, 21:34 pm
por HIDE_95
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines