Numeros abundantes
Publicado por dario (720 intervenciones) el 30/12/2018 10:14:15
Buenas gente del foro, tengo este ejercicio:
Un número abundante es un número para el cual la suma de sus divisores propios es mayor que ese número.
La suma de los divisores propios de 12 sería 1 + 2 + 3 + 4 + 6 = 18,
lo que significa que 12 es un número abundante.
Escriba un programa que acepte el entero de entrada como límite hasta el cual imprimirá números abundantes.
Por ejemplo:
1) Si el usuario ingresa 20, debería imprimir 12,18,20.
2) Si el usuario ingresa 40, debe imprimir 12,18,20,24,30,36,40
Y tengo el siguiente codigo, pero no se porque en la funcion bool esAbundante (int), no me aparecen los numeros abuundantes, solo me imprime una lista de numeros.
Un número abundante es un número para el cual la suma de sus divisores propios es mayor que ese número.
La suma de los divisores propios de 12 sería 1 + 2 + 3 + 4 + 6 = 18,
lo que significa que 12 es un número abundante.
Escriba un programa que acepte el entero de entrada como límite hasta el cual imprimirá números abundantes.
Por ejemplo:
1) Si el usuario ingresa 20, debería imprimir 12,18,20.
2) Si el usuario ingresa 40, debe imprimir 12,18,20,24,30,36,40
Y tengo el siguiente codigo, pero no se porque en la funcion bool esAbundante (int), no me aparecen los numeros abuundantes, solo me imprime una lista de numeros.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
using namespace std;
bool esAbundante(int);
int main()
{
int num,i;
cout << "Ingrese un numero: ";
cin >> num;
for (i=1; i <=num; i++) {
if (esAbundante(i))
cout << i << " ";
}
return 0;
}
bool esAbundante(int n) {
int j,suma=0;
for (j=1; j<=n; j++) {
if (n % j == 0)
suma = suma + j;
}
if (suma > n)
return true;
}
Valora esta pregunta


0