Найти - Пользователи
Полная версия: Задача на последовательность
Начало » Центр помощи » Задача на последовательность
1
Lee
Помогите пожалуйста решить задачу
Дана последовательность чисел от 10000 до 50000
Нужно найти количество таких чисел, которые имеют ровно 3 простых различных делителя(числа которые делятся на себя и на 1
Помогите пожалуйста!
xam1816
Чем помочь?ЧТо не понятно?
Lee
Напишите код как решить такую задачу, я просто не понимаю как сдлеать так, чтобы было именно 3 простых чисел
py.user.next
Lee
я просто не понимаю как сдлеать так, чтобы было именно 3 простых чисел
Тебе нужно факторизовать число, а потом посчитать количество получившихся делителей. То есть у тебя должно быть два алгоритма и один алгоритм должен быть подключен в другой алгоритм. Разработай эти алгоритмы по отдельности.

В итоге у тебя получится три соединённых алгоритма. Такая молекула из алгоритмов. Первый алгоритм - это вот этот, решающий задачу для диапазона чисел. Второй алгоритм - алгоритм факторизации одного числа. Третий алгоритм - это алгоритм определения, является ли число простым. В первый алгоритм вставляется второй алгоритм, а во второй алгоритм вставляется третий алгоритм.
xam1816
py.user.next
Напишите код как решить такую задачу
Я написал код, у меня получилось 7923, правильно или нет не знаю(сверить бы с кем-нибудь), я взял функцию разложения числа на простые множители,добавил в нее ограничения, чтобы в списке было 3 разных множителя, в другой функции прогнал по диапазону посчитал количество
xam1816
 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)
Lee
Спасибо огромное.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB