Предмет:
ИнформатикаАвтор:
boo#include <iostream>
#include <cmath>
using namespace std;
// Функция, которая проверяет, содержит ли число n цифру 0
bool containsZero(int n) {
while (n > 0) {
if (n % 10 == 0) {
return true;
}
n /= 10;
}
return false;
}
// Функция, которая проверяет, заканчивается ли квадрат числа n на цифру d
bool endsWith(int n, int d) {
int sq = n * n;
return sq % 10 == d || (sq / 10) % 10 == d;
}
// Функция, которая возвращает сумму цифр числа n, возведенных в степень p
int digitPowerSum(int n, int p) {
int sum = 0;
while (n > 0) {
int digit = n % 10;
sum += pow(digit, p);
n /= 10;
}
return sum;
}
// Функция, которая проверяет, является ли число n числом Армстронга
bool isArmstrong(int n) {
int p = log10(n) + 1; // количество цифр в числе n
return n == digitPowerSum(n, p);
}
// Функция, которая проверяет, является ли число n палиндромом
bool isPalindrome(int n) {
int rev = 0, orig = n;
while (n > 0) {
rev = rev * 10 + n % 10;
n /= 10;
}
return orig == rev;
}
// Функция, которая проверяет, является ли число n палиндромом и его квадрат также палиндром
bool isPalindromeSquare(int n) {
int sq = n * n;
return isPalindrome(n) && isPalindrome(sq);
}
int main() {
int n;
cout << "Введите верхнюю границу диапазона: ";
cin >> n;
cout << "Числа, содержащие один ноль: ";
for (int i = 10; i <= n; i++) {
if (containsZero(i)) {
cout << i << " ";
}
}
cout << endl;
cout << "Числа, квадратные обозначения которых заканчиваются одной и той же цифрой: ";
for (int i = 1; i <= 9; i++) {
for (int j = 1; j * j <= n; j++) {
if (endsWith(j, i)) {
cout << j << " ";
}
}
}
cout << endl;
cout << "Числа Армстронга: ";
for (int i = 1; i <= n; i++) {
if (isArmstrong(i)) {
cout << i << " ";
}
}
cout << endl;
cout << "Палиндромные числа, которые при возведении в квадрат также дают палиндром
Автор:
murphy7iprДобавить свой ответ
Предмет:
Английский языкАвтор:
jazlynОтветов:
Смотреть
Предмет:
Английский языкАвтор:
benjaminОтветов:
Смотреть