Форум сайта python.su
Помогите пожалуйста решить задачу
Дана последовательность чисел от 10000 до 50000
Нужно найти количество таких чисел, которые имеют ровно 3 простых различных делителя(числа которые делятся на себя и на 1
Помогите пожалуйста!
Офлайн
Чем помочь?ЧТо не понятно?
Офлайн
Напишите код как решить такую задачу, я просто не понимаю как сдлеать так, чтобы было именно 3 простых чисел
Офлайн
LeeТебе нужно факторизовать число, а потом посчитать количество получившихся делителей. То есть у тебя должно быть два алгоритма и один алгоритм должен быть подключен в другой алгоритм. Разработай эти алгоритмы по отдельности.
я просто не понимаю как сдлеать так, чтобы было именно 3 простых чисел
Офлайн
py.user.nextЯ написал код, у меня получилось 7923, правильно или нет не знаю(сверить бы с кем-нибудь), я взял функцию разложения числа на простые множители,добавил в нее ограничения, чтобы в списке было 3 разных множителя, в другой функции прогнал по диапазону посчитал количество
Напишите код как решить такую задачу
Офлайн
def prime_fact(n): count = 0 i = 2 fact = [] while i * i <= n: count_2 = 0 while n % i == 0: count_2 += 1 fact.append(i) count += 1 if count > 3 or count_2 > 1: return n //= i i += 1 if n > 1: fact.append(n) count += 1 if count == 3: return fact def f(start, end): count = 0 for i in range(start, end): f = prime_fact(i) if f is not None: count += 1 return count count = f(10000, 50000) print(count)
Офлайн
Спасибо огромное.
Офлайн