123456789101112131415161718192021222324252627282930 |
- # Для новой маркетинговой акции Ксюша придумала провести математическую лотерею. Она загадала натуральное число n и напечатала на билетах пары положительных чисел a, b такие, что a + b =n. Победителем лотереи будет считаться участник, получивший билет с минимальным наименьшим общим кратным (НОК) чисел a и b.
- # Ксюша хочет заранее понять, какие подходящие числа a и b можно выбрать, чтобы их НОК было минимально возможным. Поможете ей?
- # Формат входных данных
- # В единственной строке вводится натуральное число n (2 ≤ n ≤ 10^9) — загаданное Ксюшей число n.
- # Формат выходных данных
- # Выведите через пробел два числа a и b — искомую пару с минимальным НОК.
- # Если подходящих ответов несколько, выведите любой.
- num = int(input())
-
- def isPrime(num):
- if num % 2 == 0:
- return 2
- d = 3
- while d * d <= num and num % d != 0:
- d += 2
- if num % d == 0:
- return d
- return num
-
- devider = isPrime(num);
- if num == 1:
- print(1, 0)
- if devider == num and num != 1:
- print(1, int(num - 1))
- if devider != num and num != 1:
- print(int(num // devider), int(num - num // devider))
-
|