Автоморфным называется число, которое равно последним цифрам своего квадрата, например 25 (25 * 25 = 625).
#include <iostream>
#include <iomanip>
#include <math.h>
#include <conio.h>
#include <windows.h>
using namespace std;
bool Automorfnoe(long n)
{
long copy = n; // Берем копию числа n
long m = 1; /* Сделаем число m, которое равно степени 10, причем степень равна количеству цифр проверяемого числа n, например для 25 число m = 100 */
do
{
m *= 10;
copy /= 10;
} while(copy);
if ((n*n % m) == n) /* Берем остаток от деления квадрата числа n на m и получаем число, состоящее из последние цифр квадрата n, количество которых равно количеству цифр исходного числа, сравниваем полученное число c n и возвращаем истину, если числа равны */
return true;
else return false;
}
int main()
{
if(SetConsoleCP(1251)==0
{
cerr<<"Fialed to set codepage!"<<endl;
}
if(SetConsoleOutputCP(1251)==0)
{
cerr<<"Failed to set OUTPUT page!"<<endl;
}
do
{
long m;
cout<< "Задайте целое число ";
cin>> m;
// Поиск автоморфного числа n, лежащего справа от заданного числа m:
long n = m+1; // Берем первое число
bool flag = true;
while (!Automorfnoe(n)) // пока число не автоморфное
{
n++; // переходим к следующему числу
if (n > 1e5) { flag = FALSE; break;}
/* прерываем поиск, если число стало слишком большим, чтобы ограничить время выполнения программы и не выйти за допустимый диапазон чисел */
}
if (flag) // флажок, равный true, означает, что число найдено
cout<< "Автоморфное число справа - " << n << " : " << n <<" в квадрате = " << n * n << endl;
else cout<< "Число не найдено \n";
} while (_getch() != 27);
return 0;
}
добавлено через 2 минуты
палиандром найдешь здесь
http://www.kursovik.com/programming/180904.html
и вообще зачем придумали google... 2 простый поиска и все...