Поиск числа Армстронга на C

CCBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном задании мы узнаем о числе Армстронга и напишем программу на C для проверки, является ли число числом Армстронга или нет. Числом Армстронга называется число, которое равно сумме своих цифр, возведенных в степень, равную количеству цифр в этом числе.

Например,

153 - это число Армстронга, потому что 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27.
371 - это число Армстронга, потому что 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) 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{{"Поиск числа Армстронга на C"}} c/for_loop -.-> lab-123200{{"Поиск числа Армстронга на C"}} c/while_loop -.-> lab-123200{{"Поиск числа Армстронга на C"}} c/math_functions -.-> lab-123200{{"Поиск числа Армстронга на C"}} c/create_files -.-> lab-123200{{"Поиск числа Армстронга на C"}} c/user_input -.-> lab-123200{{"Поиск числа Армстронга на C"}} end

Создайте новый файл на C

Во - первых, нам нужно создать новый файл на C в директории ~/project/, давайте назовем его main.c.

touch ~/project/main.c

Поиск чисел Армстронга в диапазоне от 1 до 500

Напишем программу на C для поиска чисел Армстронга в диапазоне от 1 до 500.

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

int main() {
    printf("\nArmstrong numbers between 1 to 500 are: \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;
}

Проверка, является ли число числом Армстронга

Теперь напишем программу на C для проверки, является ли число числом Армстронга или нет.

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

int main() {
    int n, sum = 0;
    printf("Enter a number: ");
    scanf("%d", &n);

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

    if (sum == n) {
        printf("%d is an Armstrong number.\n", n);
    } else {
        printf("%d is not an Armstrong number.\n", n);
    }

    return 0;
}

Собираем все вместе

Давайте объединим обе программы в наш файл main.c.

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

int main() {
    // Armstrong numbers between 1 to 500
    printf("Armstrong numbers between 1 to 500 are: \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");

    // Checking if a number is Armstrong number
    int n, sum = 0;
    printf("Enter a number: ");
    scanf("%d", &n);

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

    if (sum == n) {
        printf("%d is an Armstrong number.\n", n);
    } else {
        printf("%d is not an Armstrong number.\n", n);
    }

    return 0;
}

Резюме

В этом практическом занятии мы изучили числа Армстронга и методы поиска их в заданном диапазоне, а также способ проверки, является ли число числом Армстронга. Надеемся, что вам понравилось это занятие и оно поможет вам лучше овладеть языком программирования C.