Введение
В этом лабораторном задании мы узнаем о числе Армстронга и напишем программу на C для проверки, является ли число числом Армстронга или нет. Числом Армстронга называется число, которое равно сумме своих цифр, возведенных в степень, равную количеству цифр в этом числе.
Например,
153 - это число Армстронга, потому что 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27. 371 - это число Армстронга, потому что 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1.
Создайте новый файл на 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.



