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

 

 


Tema destacado: Estamos en la red social de Mastodon


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

Desconectado Desconectado

Mensajes: 6


Ver Perfil
numeros perfectos con c
« en: 15 Mayo 2018, 01:51 am »

me piden que realize un programa que me indique cuando un numero es perfecto o no.

#include <stdio.h>

int main ()
{
   int i=1 , suma , num ;
   
   printf("ingrese un numero ; ") ;
   scanf("%d" , &num);
   
   do {
      i++ ;
      num / i ;
   }
   while (num%i==0)  ; {
      suma = i ;
   }
      if (num==suma)
      printf("el numero %d es perfecto" , suma) ;
}
   este es mi codigo pero no funciona, ayuda pls


« Última modificación: 15 Mayo 2018, 02:15 am por MarSalem » En línea

insta @marsquarepants
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: numeros perfectos con c
« Respuesta #1 en: 15 Mayo 2018, 15:20 pm »

Puedes explicar lo que intentas hacer?


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: numeros perfectos con c
« Respuesta #2 en: 15 Mayo 2018, 20:13 pm »

Lo que en realidad Mafus te está preguntando es si sabes lo que es un número perfecto?.

Un número es perfecto cuando la suma de todos sus divisores es igual al propio número.  Luego se trata de ir buscando los divisores e ir sumándolos, y al final comprobar si esa suma coincide con el número recibido...


Código:
Buleano = Funcion EsNumeroPerfecto(entero numero)
    entero divisor = 2  //el primer divisor... ya sabemos que todo nº es divisible por 1.
    entero n = 1
    entero fin = (numero \2)  // hay un límite de búsqueda. llegando a la mitad, quizás sea divisible por 2, más allá solo es divisible por sí mismo...

    Hacer
        si (numero modulo divisor) = 0)
            n += divisor              
        fin si
        divisor += 1
    repetir mientras (n <= fin)  // fin, porque un  divisor de 2 lo reduce a la mitad.
    
    EsNumeroPerfecto = (n = numero)
fin funcion


p.d.: Si pones un bucle para tratar de cuales son números perfectos empezando por el 1, acota hasta 10.000. Ten en cuenta que a medida que los números aumentan la cantidad de divisores para cada cual también, luego es un problema de naturaleza exponencial... encontrar los primeros es rápido, luego se requiere paciencia... y más allá que lo continúen tus nietos.  :laugh: :laugh:

Hay quien no considera el 1 como número perfecto, para mi lo es pués cumple la premisa.
« Última modificación: 15 Mayo 2018, 20:26 pm por NEBIRE » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Números perfectos (lenguaje C) « 1 2 3 »
Programación C/C++
NOB2014 22 12,636 Último mensaje 30 Septiembre 2014, 04:34 am
por rir3760
[C++] [?] Numeros perfectos
Programación C/C++
-JohnWalls 2 3,070 Último mensaje 7 Diciembre 2014, 20:33 pm
por -JohnWalls
Programa Numeros Perfectos C++
Programación C/C++
HIDE_95 2 3,866 Último mensaje 4 Agosto 2015, 21:34 pm
por HIDE_95
Numeros amigos y numeros perfectos programa en C
Programación C/C++
estudiante_1 2 5,630 Último mensaje 11 Agosto 2015, 23:51 pm
por estudiante_1
Programa para calcular numeros perfectos entre 1 y N
Programación C/C++
tokyo13 3 5,300 Último mensaje 27 Febrero 2019, 22:38 pm
por tokyo13
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines