Encontrar el número de Armstrong en C

CCBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos sobre el número de Armstrong y escribiremos un programa en C para verificar si un número es un número de Armstrong o no. Un número de Armstrong es un número que es la suma de sus propios dígitos elevados cada uno a la potencia del número de dígitos.

Por ejemplo,

153 es un número de Armstrong, porque 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27.
371 es un número de Armstrong, porque 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c/ControlFlowGroup -.-> c/if_else("If...Else") c/ControlFlowGroup -.-> c/for_loop("For Loop") c/ControlFlowGroup -.-> c/while_loop("While Loop") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") subgraph Lab Skills c/if_else -.-> lab-123200{{"Encontrar el número de Armstrong en C"}} c/for_loop -.-> lab-123200{{"Encontrar el número de Armstrong en C"}} c/while_loop -.-> lab-123200{{"Encontrar el número de Armstrong en C"}} c/math_functions -.-> lab-123200{{"Encontrar el número de Armstrong en C"}} c/create_files -.-> lab-123200{{"Encontrar el número de Armstrong en C"}} c/user_input -.-> lab-123200{{"Encontrar el número de Armstrong en C"}} end

Crear un nuevo archivo C

Primero, necesitamos crear un nuevo archivo C en el directorio ~/project/, llamémoslo main.c.

touch ~/project/main.c

Encontrando números de Armstrong entre 1 y 500

Vamos a escribir un programa en C para encontrar los números de Armstrong entre 1 y 500.

#include <stdio.h>
#include <math.h>

int main() {
    printf("\nLos números de Armstrong entre 1 y 500 son: \n");

    for (int i = 1; i <= 500; i++) {
        int t = i, sum = 0;
        while (t!= 0) {
            int digit = t % 10;
            sum += pow(digit, 3);
            t /= 10;
        }
        if (sum == i) {
            printf("%d ", i);
        }
    }

    return 0;
}

Comprobando si un número es un número de Armstrong

Ahora vamos a escribir un programa en C para comprobar si un número es un número de Armstrong o no.

#include <stdio.h>
#include <math.h>

int main() {
    int n, sum = 0;
    printf("Ingrese un número: ");
    scanf("%d", &n);

    int temp = n;
    while (temp!= 0) {
        int digit = temp % 10;
        sum += pow(digit, 3);
        temp /= 10;
    }

    if (sum == n) {
        printf("%d es un número de Armstrong.\n", n);
    } else {
        printf("%d no es un número de Armstrong.\n", n);
    }

    return 0;
}

Combinando todo

Vamos a combinar ambos programas en nuestro archivo main.c.

#include <stdio.h>
#include <math.h>

int main() {
    // Números de Armstrong entre 1 y 500
    printf("Los números de Armstrong entre 1 y 500 son: \n");

    for (int i = 1; i <= 500; i++) {
        int t = i, sum = 0;
        while (t!= 0) {
            int digit = t % 10;
            sum += pow(digit, 3);
            t /= 10;
        }
        if (sum == i) {
            printf("%d ", i);
        }
    }

    printf("\n");

    // Comprobando si un número es un número de Armstrong
    int n, sum = 0;
    printf("Ingrese un número: ");
    scanf("%d", &n);

    int temp = n;
    while (temp!= 0) {
        int digit = temp % 10;
        sum += pow(digit, 3);
        temp /= 10;
    }

    if (sum == n) {
        printf("%d es un número de Armstrong.\n", n);
    } else {
        printf("%d no es un número de Armstrong.\n", n);
    }

    return 0;
}

Resumen

En este laboratorio, aprendimos sobre los números de Armstrong y cómo encontrarlos en un rango dado, y cómo comprobar si un número es un número de Armstrong o no. Esperamos que hayas disfrutado de este laboratorio y que te haya ayudado a aprender más sobre la programación en C.