Есть задача. ** питоне. Напишите программу которая вводит натуральное число N и выводит...

0 голосов
243 просмотров

Есть задача. На питоне. Напишите программу которая вводит натуральное число N и выводит на экран все автоморфные числа не превосходящие N.Объясните пожалуйста ход данного решенияn=int(input())k=10for i in range(1, n):if i>=k:k*=10a=2*i-1 if (a**2-1)%(4*k)==0:print(i)


Информатика (40 баллов) | 243 просмотров
Дан 1 ответ
0 голосов

1) Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в N-ю степень, где N - количество цифр в числе, равна самому числу. Напримерт153=1^3 5^3 3^3. Найдитетвсе трехзначныеии четырехзначныеичисла Армстронга

var a,b,c,d,a2:integer;

begin

for a:=100 to 9999 do begin

d:=0;

a2:=a;

while (a2 <> 0) do begin

b:= a2 mod 10;

a2:= a2 div 10;

if a<1000 then c:= (b*b*b)</p>

else c:=(b*b*b*b);

d:= d+c;

end;

if (a = d) then writeln('число армстронга ==> ', a);

end;

end.

2)Авmoморфные числа. Натуральное число называется автоморфным, если оно равно последним цифрам своего квадрата. Например: 25 и 625. Напишите программу, которая вводит натуральное число N и выводит на акран все автоморфные числа, не превосходящие N.

var n,i,l:integer; s1,s2:string;

begin

write('n = '); readln(n);

for i:=1 to n do

begin

str(i,s1);

l:=length(s1);

str(i*i,s2);

if s1=copy(s2,length(s2)-l+1,l) then writeln(i,' ',i*i);

end;

end.

3)Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.

var a,b,nod,k:integer;

begin

readln(a,b);

k:=0;

while (a<>0)and(b<>0) do

begin

if a>b then a:=a mod b else b:=b mod a;

k:=k+1;

end;

nod:=a+b;

writeln(nod,' ',k);

end.

(36 баллов)