Уведомления

Группа в Telegram: @pythonsu

#1 Март 21, 2021 09:23:16

Lee
Зарегистрирован: 2021-03-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача на последовательность

Помогите пожалуйста решить задачу
Дана последовательность чисел от 10000 до 50000
Нужно найти количество таких чисел, которые имеют ровно 3 простых различных делителя(числа которые делятся на себя и на 1
Помогите пожалуйста!

Офлайн

#2 Март 21, 2021 10:58:48

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1309
Репутация: +  113  -
Профиль   Отправить e-mail  

Задача на последовательность

Чем помочь?ЧТо не понятно?

Офлайн

#3 Март 21, 2021 14:04:39

Lee
Зарегистрирован: 2021-03-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача на последовательность

Напишите код как решить такую задачу, я просто не понимаю как сдлеать так, чтобы было именно 3 простых чисел

Офлайн

#4 Март 21, 2021 19:44:26

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Задача на последовательность

Lee
я просто не понимаю как сдлеать так, чтобы было именно 3 простых чисел
Тебе нужно факторизовать число, а потом посчитать количество получившихся делителей. То есть у тебя должно быть два алгоритма и один алгоритм должен быть подключен в другой алгоритм. Разработай эти алгоритмы по отдельности.

В итоге у тебя получится три соединённых алгоритма. Такая молекула из алгоритмов. Первый алгоритм - это вот этот, решающий задачу для диапазона чисел. Второй алгоритм - алгоритм факторизации одного числа. Третий алгоритм - это алгоритм определения, является ли число простым. В первый алгоритм вставляется второй алгоритм, а во второй алгоритм вставляется третий алгоритм.



Офлайн

#5 Март 22, 2021 01:02:30

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1309
Репутация: +  113  -
Профиль   Отправить e-mail  

Задача на последовательность

py.user.next
Напишите код как решить такую задачу
Я написал код, у меня получилось 7923, правильно или нет не знаю(сверить бы с кем-нибудь), я взял функцию разложения числа на простые множители,добавил в нее ограничения, чтобы в списке было 3 разных множителя, в другой функции прогнал по диапазону посчитал количество

Офлайн

#6 Март 22, 2021 11:06:53

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1309
Репутация: +  113  -
Профиль   Отправить e-mail  

Задача на последовательность

 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)

Офлайн

#7 Март 24, 2021 21:16:10

Lee
Зарегистрирован: 2021-03-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача на последовательность

Спасибо огромное.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version