Check if a number is prime

Par Julien Palard

Define the function is_prime(n).

n is number that the function is_prime takes as a parameter.

The function is_prime return True if num is a prime number, False otherwise. Such as:

>>> from solution import is_prime
>>> is_prime(3)
True
>>> is_prime(4)
False
import math
def is_prime(n):
if n == 2:
return True
else:
for i in range(2, math.ceil(math.sqrt(n))):
if n % i == 0:
return False
return False
if __name__ == "__main__":
print(math.ceil(math.sqrt(272)))
# assert not is_prime(1)
# assert is_prime(2)
# assert is_prime(3)
# assert not is_prime(4)
# assert is_prime(271)
# assert not is_prime(272)
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

I don't think that 4 is prime, your function returned True.

2
2

I think that 3 is prime, your function returned False.

  File "./snippet.py", line 5
    return True:
               ^
SyntaxError: invalid syntax
17
Connecté au serveur de correction!

Exception Python

Traceback (most recent call last):
  File "solution.py", line 16, in <module>
    assert is_prime(2)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 16 du fichier solution.py.

       14: if __name__ == "__main__":
       15:     assert not is_prime(1)
    -->16:     assert is_prime(2)
       17:     assert is_prime(3)



:::text
    is_prime:  <function is_prime>

Exception Python

Traceback (most recent call last):
  File "solution.py", line 16, in <module>
    assert is_prime(2)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 16 du fichier solution.py.

       14: if __name__ == "__main__":
       15:     assert not is_prime(1)
    -->16:     assert is_prime(2)
       17:     assert is_prime(3)



:::text
    is_prime:  <function is_prime>

I think that 2 is prime, your function returned False.

Exception Python

Traceback (most recent call last):
  File "CWD:/solution.py", line 14
    if __name__ == "__main__":
                             ^
SyntaxError: invalid syntax

Une exception de type SyntaxError se produit lorsque Python ne peut pas comprendre votre code.

Python peut seulement comprendre le code du fichier 'CWD:/solution.py' jusqu'à l'endroit indiqué par ^.

        4:     print(math.ceil(math.sqrt(n))
        5:     # if n == 1 :
        6:     #     return False
        7:     # elif n >= 2:
        8:     #     for i in range(2, math.ceil(math.sqrt(n))):
        9:     #         if n % i == 0:
       10:     #             return False
       11:     # return True
       12: 
       13: 
    -->14: if __name__ == "__main__":
                                    ^

Le symbole parenthèse ( à la ligne 4 n'est pas fermé par le symbole correspondant.

4:     print(math.ceil(math.sqrt(n))
            ^

Exception Python

Traceback (most recent call last):
  File "CWD:/solution.py", line 14
    if __name__ == "__main__":
                             ^
SyntaxError: invalid syntax

Une exception de type SyntaxError se produit lorsque Python ne peut pas comprendre votre code.

Python peut seulement comprendre le code du fichier 'CWD:/solution.py' jusqu'à l'endroit indiqué par ^.

        4:     print(math.ceil(math.sqrt(n))
        5:     # if n == 1 :
        6:     #     return False
        7:     # elif n >= 2:
        8:     #     for i in range(2, math.ceil(math.sqrt(n))):
        9:     #         if n % i == 0:
       10:     #             return False
       11:     # return True
       12: 
       13: 
    -->14: if __name__ == "__main__":
                                    ^

Le symbole parenthèse ( à la ligne 4 n'est pas fermé par le symbole correspondant.

4:     print(math.ceil(math.sqrt(n))
            ^

Exception Python

Traceback (most recent call last):
  File "solution.py", line 17, in <module>
    assert not is_prime(4)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 17 du fichier solution.py.

       15:     assert is_prime(2)
       16:     assert is_prime(3)
    -->17:     assert not is_prime(4)
       18:     assert is_prime(271)



:::text
    is_prime:  <function is_prime>

Exception Python

Traceback (most recent call last):
  File "solution.py", line 19, in <module>
    assert not is_prime(4)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 19 du fichier solution.py.

       17:     assert is_prime(2)
       18:     assert is_prime(3)
    -->19:     assert not is_prime(4)
       20:     assert is_prime(271)



:::text
    is_prime:  <function is_prime>

Exception Python

Traceback (most recent call last):
  File "solution.py", line 18, in <module>
    assert is_prime(3)
  File "solution.py", line 9, in is_prime
    for i in range(2, math.ceint(math.sqrt(n))):
AttributeError: module 'math' has no attribute 'ceint'

Une exception AttributeError se produit lorsque le code contient quelque chose comme object.x et x n’est pas une méthode ou un attribut (variable) appartenant à objet.

Python nous dit qu’aucun objet avec le nom ceint n’est dans le module math.

L'exécution s'est arrêtée à la ligne 18 du fichier solution.py

       16:     assert not is_prime(1)
       17:     assert is_prime(2)
    -->18:     assert is_prime(3)
       19:     assert not is_prime(4)



:::text
    is_prime:  <function is_prime>

Exception levée à la ligne 9 du fichier solution.py.

        7:         return True
        8:     if n > 2:
    --> 9:         for i in range(2, math.ceint(math.sqrt(n))):
                                     ^^^^^^^^^^
       10:             if n % i == 0:



:::text
    global math:  <module math (builtin)>

Exception Python

Traceback (most recent call last):
  File "solution.py", line 18, in <module>
    assert is_prime(3)
  File "solution.py", line 9, in is_prime
    for i in range(2, math.sqrt(n)):
TypeError: 'float' object cannot be interpreted as an integer

Une exception TypeError est généralement causée une tentative de combiner deux types d’objets incompatibles, en invoquant une fonction avec le mauvais type d’objet, ou en tentant d'effectuer une opération non permise sur un type d'objet donné.

Vous avez écrit un objet de type float là où un entier était attendu.

L'exécution s'est arrêtée à la ligne 18 du fichier solution.py

       16:     assert not is_prime(1)
       17:     assert is_prime(2)
    -->18:     assert is_prime(3)
       19:     assert not is_prime(4)



:::text
    is_prime:  <function is_prime>

Exception levée à la ligne 9 du fichier solution.py.

        7:         return True
        8:     if n > 2:
    --> 9:         for i in range(2, math.sqrt(n)):
                            ^^^^^^^^^^^^^^^^^^^^^^
       10:             if n % i == 0:



:::text
    n:  3
    global math:  <module math (builtin)>
    range:  <class range>
    math.sqrt:  <builtin function sqrt>

Your function is too slow: It took 1.61s to compute is_prime(20021689), which should take around 0.0001s.

Hint: Don't search for divisors bigger than the square root of n.

Exception Python

Traceback (most recent call last):
  File "solution.py", line 17, in <module>
    assert not is_prime(4)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 17 du fichier solution.py.

       15:     assert is_prime(2)
       16:     assert is_prime(3)
    -->17:     assert not is_prime(4)
       18:     assert is_prime(271)



:::text
    is_prime:  <function is_prime>

Exception Python

Traceback (most recent call last):
  File "solution.py", line 16, in <module>
    assert is_prime(3)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 16 du fichier solution.py.

       14:     assert not is_prime(1)
       15:     assert is_prime(2)
    -->16:     assert is_prime(3)
       17:     assert not is_prime(4)



:::text
    is_prime:  <function is_prime>

Exception Python

Traceback (most recent call last):
  File "solution.py", line 18, in <module>
    assert is_prime(3)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 18 du fichier solution.py.

       16:     assert not is_prime(1)
       17:     assert is_prime(2)
    -->18:     assert is_prime(3)
       19:     assert not is_prime(4)



:::text
    is_prime:  <function is_prime>

Exception Python

Traceback (most recent call last):
  File "solution.py", line 18, in <module>
    assert is_prime(3)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 18 du fichier solution.py.

       16:     assert not is_prime(1)
       17:     assert is_prime(2)
    -->18:     assert is_prime(3)
       19:     assert not is_prime(4)



:::text
    is_prime:  <function is_prime>

Exception Python

Traceback (most recent call last):
  File "solution.py", line 15, in <module>
    assert is_prime(2)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 15 du fichier solution.py.

       13: if __name__ == "__main__":
       14:     assert not is_prime(1)
    -->15:     assert is_prime(2)
       16:     assert is_prime(3)



:::text
    is_prime:  <function is_prime>

Exception Python

Traceback (most recent call last):
  File "solution.py", line 18, in <module>
    assert is_prime(2)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 18 du fichier solution.py.

       16: if __name__ == "__main__":
       17:     assert not is_prime(1)
    -->18:     assert is_prime(2)
       19:     assert is_prime(3)



:::text
    is_prime:  <function is_prime>

Exception Python

Traceback (most recent call last):
  File "solution.py", line 15, in <module>
    assert is_prime(2)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 15 du fichier solution.py.

       13: if __name__ == "__main__":
       14:     assert not is_prime(1)
    -->15:     assert is_prime(2)
       16:     assert is_prime(3)



:::text
    is_prime:  <function is_prime>

Exception Python

Traceback (most recent call last):
  File "solution.py", line 13, in <module>
    assert is_prime(2)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 13 du fichier solution.py.

       11: if __name__ == "__main__":
       12:     assert not is_prime(1)
    -->13:     assert is_prime(2)
       14:     assert is_prime(3)



:::text
    is_prime:  <function is_prime>

I think that 2 is prime, your function returned False.

I think that 2 is prime, your function returned False.

I think that 2 is prime, your function returned False.

I think that 2 is prime, your function returned False.

Exception Python

Traceback (most recent call last):
  File "solution.py", line 11, in <module>
    assert not is_prime(1)
AssertionError:

Dans Python, le mot clé assert est utilisé dans des énoncés ayant la forme assert condition, pour confirmer que condition n’est pas False; ni équivalente à False comme une liste vide, etc.

Si condition est False ou son équivalent, une exception de type AssertionError est levée.

Exception levée à la ligne 11 du fichier solution.py.

        9: 
       10: if __name__ == "__main__":
    -->11:     assert not is_prime(1)
       12:     assert is_prime(2)



:::text
    is_prime:  <function is_prime>