М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
JHOOOOOOPE
JHOOOOOOPE
18.12.2021 12:52 •  Информатика

ЯЗЫК ПИТОН!! 1) Дано натуральное число N>1. Выведите все его простые натуральные делители с учетом кратности. Алгоритм должен иметь сложность O(n−−√).

Входные данные
Вводится натуральное число N≤2∗109.

Выходные данные
Выведите ответ на задачу.
2)Количество всех натуральных делителей натурального числа n обозначается τ(n). Сумма всех натуральных делителей числа n обозначается σ(n).

Входные данные
Дано натуральное n≤109.

Выходные данные
Выведите τ(n) и σ(n).

Примечание
Сложность алгоритма должна быть O(n−−√).
3)Два различных числа n и m называются дружественными, если сумма делителей числа n (включая 1, но исключая само n) равна числу m и наоборот. Например, 220 и 284 – дружественные числа.

Входные данные
Дано число k≤50000

Выходные данные
Выведите все пары дружественных чисел, каждое из которых не превосходит k. Пары необходимо выводить по одной в строке, разделяя числа в паре пробелом. Каждая пара должна быть выведена только один раз (перестановка чисел новую пару не дает).

👇
Ответ:
3JlaK
3JlaK
18.12.2021

1)

n = int(input())

ans = []

for i in range(int(n ** 0.5 + 1)):

if n % i == 0:

ans.append(i)

print(*ans)

2)

x = int(input())

a = 0

d = 2  

s = int(x/2) + 1

for i in range(2, s):  

   if x % i == 0:

       d += 1

       a += i

print(d, x + 1 + a)

3)

k = 10000

ans = {}

   

def d(number):

   return sum(x for x in range(1, (number // 2) + 1) if number % x == 0)

   

for i in range(1, k+1):

   a = d(i)

   if i == d(a) and i != a:

       if i and a not in pairs:

           pairs[i] = a

print(pairs)

4,6(82 оценок)
Открыть все ответы
Ответ:
dashutka20032
dashutka20032
18.12.2021
Если требуется выводить соответствующее сообщение в случае, когда таких чисел нет:
var i, x, k : integer;
Begin
 k:=0;
 for i:=1 to 5 do begin
 readln(x);
 if ((x>0) and (x<5)) or ((x>-8) and (x<-1)) then begin
   k:=k+1;
   writeln(x);
 end;
 end;
 if k=0 then writeln('нет таких чисел');
End.

Если требуется выводить соответствующее сообщение каждый раз когда число не входит в промежуток:
var i, x : integer;
Begin
 for i:=1 to 5 do begin
 readln(x);
 if ((x>0) and (x<5)) or ((x>-8) and (x<-1)) then
   writeln(x)
 else writeln(x,' не входит в промежуток');
 end;
End.
4,4(12 оценок)
Ответ:
ezdinaa
ezdinaa
18.12.2021
Var n : int64;

Function isPali(A : int64) : Boolean;
Var B : int64;
Begin
  B:=1;
  While B<A do B:=B*10;
  B:=B div 10;
  If A>9 then isPali:=((A div B)=(A mod 10)) and isPali(A mod B div 10) else isPali:=True;
end;

Begin
  Readln(n);
  If isPali(n) then Writeln('Это полиндром.') else Writeln('Это не полиндром.');
  Write('Его квадрат ',sqr(n));
  If isPali(sqr(n)) then Writeln(' полиндром.') else Writeln(' не полиндром.');
end.

Хотя в Pabc.net есть функция и покороче:

Function IsPali(B : Longint) : Boolean;
Begin
  IsPali:=(B=IntRevers(B));
end;
4,5(60 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ