Найти все меньшие 1000 натуральные числа, которые при возведении в квадрат дают палиндром - C (СИ)
Формулировка задачи:
Найти все меньшие 1000 натуральные числа, которые при возведении в квадрат дают палиндром (перевертыш). (Палиндром число, в записи которого прямой и обратный порядок цифр одинаков).
#include <stdio.h>
/* Получение от числа N цифры, разряд которой - в i */
#define Dig(i) ((N / (i)) % 10)
/* Основная функция */
void main( void )
{
unsigned long N, l, r, gb;
printf("Enter the number ");
scanf("%lu", &gb);
N=gb*gb;
/* Находим разрад старшей цифры */
for (l = 1000000000UL; l > N; l /= 10)
{}
/* Сравниваем цифры */
for (r = 1; r < l; r *= 10, l /= 10)
if (Dig(l) != Dig(r))
{
printf("NO\n");
return;
}
printf("YES\n");
}Решение задачи: «Найти все меньшие 1000 натуральные числа, которые при возведении в квадрат дают палиндром»
textual
Листинг программы
int isPoly(int n)
{ int k=0
while(n) {
k = 10*k + n%10;
n /= 10;
}
return (k==n);
}