Я пытаюсь создать программу, которая получает целое число от пользователя, а затем создает список целых чисел, начиная с 1 до целого числа, введенного пользователем. Например, если пользователь вводит «8», то будет создан список [2, 3, 4, 5, 6, 7, 8]. После этого я хочу, чтобы он просматривал каждое целое число в списке и отображал только простые числа вплоть до (или включая) пользовательского ввода.
def main():
#get user input of integer
user_integer = int(input('Please enter an integer greater than 1: '))
#call function that creates list of numbers up to user input
integer_list = create_list(user_integer)
#call function that returns prime numbers
prime_numbers = prime_number(integer_list)
#display prime numbers
print('The prime numbers up to the integer you entered are:', prime_numbers)
def create_list(x):
integer_list = []
numbers = 2
while numbers != x:
integer_list.append(numbers)
numbers += 1
return integer_list
def is_prime_number(num):
for i in range(2,num):
if num%i==0:
return False
else:
return True
def prime_number(x):
prime_numbers = []
for i in (x):
if is_prime_number(i):
prime_numbers.append(i)
return (prime_numbers)
main()
Редактировать: я отредактировал код, включив в него функцию, которая проверяет каждое число отдельно, если это простое число. Тем не менее, он, кажется, возвращает только нечетные числа, а не простые числа. Например, если я введу «13», он вернет список [3, 5, 7, 9, 11]. Очевидно, 9 не является простым числом.
Что я делаю не так?