Обозначим остаток от деления натурального числа a на натуральное число b как a mod b. Алгоритм вычисления значения функции F(n), где n – целое неотрицательное число, задан следующими соотношениями:
F(0)=0;
F(n)=F(n−1) + 1, если n>0 и при этом n mod 3 = 2;
F(n) = F((n–n mod 3)/3), если n>0 и при этом n mod 3 < 2.
Укажите наименьшее возможное n, для которого F(n)=6.
Задача 1
Program Zadanie1;
var i,N:integer;
A:array[1..4]of integer;
Begin
readln(n);
A[1]:=round(int(N/1000));
A[2]:=round(int(N/100))-A[1];
A[3]:=round(int(N/10))-A[1]-A[2];
A[4]:=N-A[1]-A[2]-A[3];
if (A[1]:=A[4]) and (A[2]:=A[3]) and (A[3]:=A[2]) and (A[4]=A[1]) then writeln('полином');
end;
Задача 2
Program Zadanie2;
var i,N:integer;
A:array[1..3]of integer;
function Kub(a):integer;begin Kub:=a*a*a;end;
Begin
readln(n);
A[1]:=round(int(N/1000));
A[2]:=round(int(N/100))-A[1];
A[3]:=N-A[1]-A[2]-A[3];
if N*N=kub(A[1])+kub(A[2])+kub(A[3]) then writeln('равенство');
end;
n = int(input()) # n = 2428
dx = []
x = n
while x > 0:
if n % (x % 10) == 0:
if str(x % 10) not in dx:
dx.append(str(x % 10))
x = x // 10
dx.sort()
print(len(dx))
print(' '.join(dx))
Объяснение:
n = int(input()) # n = 2428
dx = []
x = n # чтобы не изменить число, вводим новую переменную x = 2428
while x > 0:
if n % (x % 10) == 0: # находим остаток от деления на последнюю цифру 2428 % (8) != 0
if str(x % 10) not in dx: # если цифры нет в списке
dx.append(str(x % 10)) # добавляем в список в строковом формате
x = x // 10 # отбрасываем последнюю цифру от числа x = 242
dx.sort() # сортируем список по возрастанию
print(len(dx))
print(' '.join(dx))