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

Ответы 1

  • 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)

    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.

    • Автор:

      moises
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years