ALEGSA · Actualidad

Función lógica que determine si un valor n es un número perfecto

Claro, para resolver esta tarea en lenguaje C, se puede escribir una función que reciba como parámetro un número entero positivo n y determine si es un número perfecto o ...

Función lógica que determine si un valor n es un número perfecto

Título: Función lógica que determine si un valor n es un número perfecto
Fecha: 08-05-2023 20:33

Pregunta o consulta del visitante:

¡Hola! ¿Podrían ayudarme a escribir una función en lenguaje C que determine si un número es perfecto? Necesito que la función verifique si un valor n es igual a la suma de todos sus divisores positivos. ¡Gracias!

Respuesta de ALEGSA.com.ar:

Claro, para resolver esta tarea en lenguaje C, se puede escribir una función que reciba como parámetro un número entero positivo n y determine si es un número perfecto o no. 

Aquí te dejo el código que lo hace:

```
#include <stdio.h>

int esNumeroPerfecto(int n){
    int sumaDivisores = 0;
    for(int i=1; i<n; i++){
        if(n%i == 0){
            sumaDivisores += i;
        }
    }
    if(sumaDivisores == n){
        return 1;
    }else{
        return 0;
    }
}

int main(){
    int num;
    printf("Ingrese un numero: ");
    scanf("%d", &num);
    if(esNumeroPerfecto(num)){
        printf("%d es un numero perfecto.\n", num);
    }else{
        printf("%d no es un numero perfecto.\n", num);
    }
    return 0;
}
```

Primero, definimos una función llamada "esNumeroPerfecto" que recibe como parámetro un número entero positivo n. Dentro de esta función, inicializamos una variable llamada "sumaDivisores" en cero, que se encargará de ir sumando todos los divisores del número n.

Luego, utilizamos un ciclo "for" para recorrer todos los enteros positivos menores a n (excluyendo al número mismo). Si el número es divisor de n, lo sumamos a la variable "sumaDivisores".

Finalmente, comparamos si la suma de los divisores es igual al número n. Si es así, significa que es un número perfecto y retornamos 1. En caso contrario, retornamos 0.

En la función "main", le pedimos al usuario que ingrese un número entero positivo y llamamos a la función "esNumeroPerfecto" para determinar si es un número perfecto. Si lo es, imprimimos un mensaje indicándolo, y si no lo es, imprimimos un mensaje indicando lo contrario.



Preguntas relacionadas para el Asistente IA:

1 - ¿Qué hace la función "esNumeroPerfecto" en el código en lenguaje C?

2 - ¿Qué tipo de parámetro recibe la función "esNumeroPerfecto"?

3 - ¿En qué consiste la condición del "if" dentro de la función "esNumeroPerfecto"?


Compartir nota

Consultá dudas con nuestro Asistente IA

ALEGSA IA · Tecnología

Consultá al asistente IA

Escribí tu consulta sobre informática, internet, tecnología, programación, hardware, software o seguridad. El asistente responde en segundos y podés elegir si querés una respuesta completa o breve.

Cuanto más clara sea tu pregunta, mejor responderá la IA. 0/400
Tipo de respuesta
Ayuda para escribir una mejor consulta

Dále contexto a la IA: explicá qué querés resolver, qué equipo o sistema usás y qué tipo de respuesta necesitás. Si lo deseás, dejá tu e-mail para que podamos contactarte si detectamos un error o si nuestro staff quiere ampliar la respuesta. Cada consulta se procesa como una nueva pregunta.

* Aclaración: sugerimos dejar tu e-mail si querés que podamos contactarte para corregir una respuesta o ampliar la ayuda.

Nuestras redes

Podés seguirnos y contactarnos desde nuestras redes sociales.