Натуральное число называется автоморфным, если оно равно последним цифрам своего квадрата. Например, 25^2 = 625. Напишите программу, которая получает натуральное число N и выводит на экран все автоморфные числа, не превосходящие N.
Пример:
Введите N:
1000
1*1=1
5*5=25
6*6=36
25*25=625
76*76=5776
Ответы на вопрос
Ответил A1dar
0
//PascalABC.NET 3.0
function check(x: integer): boolean;
begin
var tmp := x * x;
Result := true;
repeat
if tmp mod 10 <> x mod 10 then Result := false;
tmp := tmp div 10;
x := x div 10;
until (x = 0) or not(Result);
end;
begin
var n := ReadInteger('Введите N:');
Range(1, n).Where(x -> check(x)).Select(x -> x.ToString + '*' + x.ToString + '=' + (x * x).ToString).Println(NewLine)
end.
function check(x: integer): boolean;
begin
var tmp := x * x;
Result := true;
repeat
if tmp mod 10 <> x mod 10 then Result := false;
tmp := tmp div 10;
x := x div 10;
until (x = 0) or not(Result);
end;
begin
var n := ReadInteger('Введите N:');
Range(1, n).Where(x -> check(x)).Select(x -> x.ToString + '*' + x.ToString + '=' + (x * x).ToString).Println(NewLine)
end.
Ответил A1dar
0
для n = 1000 в условии
Ответил A1dar
0
извиняюсь, не дочитал условие
Ответил A1dar
0
Исправил
Ответил srzontmp
0
Можно короче исправить Вашу программу //PascalABC.NET 3.0
function Ordd(var x,m: integer):integer;
begin
if x=m then m:=m*10;
Ordd:=m;
end;
Begin
var n := ReadInteger('Введите N: ');
var m: integer; m:=10;
Range(1, n).Where(x -> x = x*x mod Ordd(x,m)).Select(x -> x.ToString + '*' + x.ToString + '=' + (x * x).ToString).Println
End.
function Ordd(var x,m: integer):integer;
begin
if x=m then m:=m*10;
Ordd:=m;
end;
Begin
var n := ReadInteger('Введите N: ');
var m: integer; m:=10;
Range(1, n).Where(x -> x = x*x mod Ordd(x,m)).Select(x -> x.ToString + '*' + x.ToString + '=' + (x * x).ToString).Println
End.
Ответил A1dar
0
Тоже вариант
Новые вопросы
Другие предметы,
2 года назад
Английский язык,
2 года назад
Информатика,
9 лет назад
Литература,
9 лет назад
Математика,
9 лет назад
Математика,
9 лет назад