Простые числа вроде 1 2 3 5 7 и тд?
Если так то вот держи на питоне решение мне просто лень на С++ писать
from typing import List # Чтобы типы данных тебе показывать
import math # Библиотека для математики
def prime_numbers(num: int) -> List[int]:
primes: List[int] = []
while num % 2 == 0: # Проверяет кратное ли число двум:
num /= 2
if 2 not in primes: # Можешь это удалить и тогда в primes будут абсолютно все делители с повторениями
primes.append(2)
for i in range(3, math.ceil(math.sqrt(num)), 2): # Тут сначала получают корень числа num и уже потом его через ceil как бы округляют к следующему числу ну как бы 1.13 превращается в 2
while num % i == 0: # Тоже что и при делении на 2
num /= i
if i not in primes:
primes.append(i)
if num != 1:
if num not in primes:
primes.append(int(num)) # Тут int из-за приколов питончика так как деление возвращает float ты об этом не думай
return primes
Напишите программу, которая выполняет разложение натурального числа на простые сомножители (возможно, кратные).
Входные данные
Входная строка содержит натуральное число N .
Выходные данные
Программа должна вывести в одной строке все простые сомножители числа N , разделив их пробелами.