Advertisement
Dimaush

HSE olymp

Jan 25th, 2024
498
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.57 KB | None | 0 0
  1. def smallest(n):
  2.     if n % 2 == 0:
  3.         return 2
  4.     for i in range(3, int(n ** 0.5) + 1, 2):
  5.         if n % i == 0:
  6.             return i
  7.     return n
  8.  
  9. def alg1(n):
  10.     if n == 1:
  11.         return 0
  12.     else:
  13.         if n % 2 != 0:
  14.             return alg1(n - 1) + 1
  15.         else:
  16.             return alg1(n // 2) + 1
  17.  
  18. def alg2(n):
  19.     if n == 1:
  20.         return 0
  21.     else:
  22.         k = smallest(n)
  23.         if k == n:
  24.             return alg2(n - 1) + 1
  25.         else:
  26.             return alg2(k) + alg2(n // k)
  27.  
  28.  
  29. n = int(input())
  30. print(alg1(n), alg2(n))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement