Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с python

eblan eblanovich Ученик (95), закрыт 10 месяцев назад
Дано натуральное число N. Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие числа, кроме 2, 3, 5.

N = int(input("Введите кол-во чисел N: "))
num = 1
count = 0
result = []
while True:
if ((num % 2 == 0) or (num % 3 == 0) or (num % 5 == 0)) and (N > count):
count += 1
result.append(num)
num += 1
elif N == count:
break
else:
num += 1
continue

print("Первые", N, "натуральных чисел, которые делятся только на 2, 3 и 5:", result)

В ответе он выводит числа 8, 12, 14, которые не должны как это исправить?
Лучший ответ
Андрей Высший разум (483753) 11 месяцев назад
Чисел, которые делятся ТОЛЬКО на 2, 3, 5 всего 3: 2, 3, 5. Любое другое число делится на само себя, так что под условие задачи оно не подходит.

Если добавить условие, что делители не должны быть равны самому числу, то таких чисел будет всего 6:
2 * 2 = 4
2 * 3 = 6
3 * 3 = 9
2 * 5 = 10
3 * 5 = 15
5 * 5 = 25
Остальные ответы
Богдан Трепалин Знаток (306) 11 месяцев назад
Проблема заключается в условии if, оно должно быть изменено на следующее:


 N = int(input("Введите кол-во чисел N: "))   
num = 1
count = 0
result = []

while True:
if (num % 2 != 0) and (num % 3 != 0) and (num % 5 != 0) and (N > count):
count += 1
result.append(num)
num += 1
elif N == count:
break
else:
num += 1
continue

print("Первые", N, "натуральных чисел, которые делятся только на 2, 3 и 5:", result)



Теперь программа будет выводить первые N натуральных чисел, которые не делятся ни на какие числа, кроме 2, 3, 5.
damn Просветленный (47455) 11 месяцев назад
Твоя программа ищет числа, которые делятся ХОТЯ БЫ на одно из чисел: 2, 3, 5. Нужно найти числа, которые делятся ТОЛЬКО на 2, 3 и 5, и больше ни на что.
Для этого можно использовать функцию, проверяющую делители числа, и затем использовать её в основном цикле:
 def делится_только_на_2_3_5(n): 
for i in range(2, int(n**0.5) + 1):
if n % i == 0 and i not in (2, 3, 5):
return False
return True

N = int(input("Введите количество чисел N: "))
count = 0
num = 1
result = []

while count < N:
if делится_только_на_2_3_5(num):
result.append(num)
count += 1
num += 1

print("Первые", N, "натуральных чисел, которые делятся только на 2, 3 и 5:", result)
Похожие вопросы