Top.Mail.Ru
Ответы

Помогите с python

Дано натуральное число 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, которые не должны как это исправить?

По дате
По рейтингу
Аватар пользователя
Новичок

Чисел, которые делятся ТОЛЬКО на 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

Аватар пользователя
Мыслитель

Твоя программа ищет числа, которые делятся ХОТЯ БЫ на одно из чисел: 2, 3, 5. Нужно найти числа, которые делятся ТОЛЬКО на 2, 3 и 5, и больше ни на что.
Для этого можно использовать функцию, проверяющую делители числа, и затем использовать её в основном цикле:

123456789101112131415161718
 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) 
Аватар пользователя
Ученик

Проблема заключается в условии if, оно должно быть изменено на следующее:


123456789101112131415161718
 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.



Видео по теме