Нужна помощь в понимании строки № 9 функции is_prime; Есть ли более простой способ для функции?

Как строка № 9(если n + 1 == x) имеет отношение к проверке, является ли число простым?

Есть ли более простой способ построить эту функцию?

    def is_prime(x):
        if x == 2:
            return True
        elif x > 2:
            for n in range(2, x):
                if x % n == 0:
                    return False
                else:
                    if n + 1 == x:
                        return True
        else:
            return False

1 ответ

Решение

Простое число - это целое число, имеющее только 1 и "я" в качестве делителей. Вот аналогичное решение, которому может быть легче следовать. Мы используем DataFrame от pandas и связанную с ним функцию 'apply'. Подавите строку "print df" и измените вывод по желанию. Повеселись

"""
Created on Fri Nov 18 13:32:08 2016
@author: Soya
"""

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas import DataFrame, Series


def isprime(x):
    vals = range(2,x/2)
    df = DataFrame([vals]).T
    df['1'] = df.apply(lambda y: x%y)
    print df
    print ''
    if df['1'].prod() != 0:
        print 'PRIME'

isprime(17)
   0  1
0  2  1
1  3  2
2  4  1
3  5  2
4  6  5
5  7  3

PRIME
Другие вопросы по тегам