Я пытаюсь получить функцию, чтобы определить, является ли N простым числом. Я новичок в Python, и я знаю, что это не может быть наиболее эффективным способом решить эту проблему, но это моя попыткаisPrime function (list +% operator)
def is_prime(N):
k = [] #Creates a new list k
for i in range(2,N): #For each i from 2 -> N
r = N%i # r is the remainder of N % i
k.append(r) # appends each remainder r to list k
if (i == N-1): #Once index equals N-1, print list k
print(k)
#For each element j in list k, check if each element in list k is 0
for j in range (len(k)):
if k[j] != 0: <---PROBLEM
return True
else:
return False
print(is_prime(15))
Логика, у меня есть, что, когда число делится на 1 и само по себе, а не делится на любые другие числа от 2 до N-1, тогда это простое число. В приведенном выше коде у меня есть проблема, сравнивающая значения каждого элемента в списке k. Я хочу определить, является ли значение каждого элемента k [j] == 0. Если каждый элемент k [j]! = 0 и N% 1 == 0 и N% N == 0, то это простое число!
Любые идеи, как я могу решить эту проблему? Пожалуйста, обратитесь к приведенной ниже ссылке, чтобы получить визуализацию моего кода! http://goo.gl/IVIRz7
Если вы добавите число, делящееся в список, почему вы не пытаетесь выполнить условие в списке 'len', почему вы его проверяете? – Arman
@Arman Я не совсем понимаю, что вы имеете в виду. Я проверяю внутри списка, потому что хочу знать, является ли значение каждого элемента внутри него 0 или нет. – misheekoh
Посмотрите на мой ответ, вы должны только проверить длину списка – Arman