Détection efficace de nombres premiers

PythonPythonBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

En mathématiques, un nombre premier est un nombre naturel supérieur à 1 qui n'est pas le produit de deux nombres naturels plus petits. Par exemple, 5 est premier car les seules manières de l'écrire comme un produit, 1 × 5 ou 5 × 1, impliquent 5 lui-même. Cependant, 4 n'est pas premier car c'est un produit (2 × 2) dans lequel les deux nombres sont plus petits que 4. Dans ce défi, vous devez écrire une fonction Python pour vérifier si un nombre donné est premier ou non.

Le nombre est premier

Écrivez une fonction Python appelée is_prime(n) qui prend un entier n en entrée et renvoie True si le nombre est premier, et False sinon. Pour résoudre ce problème, vous devez suivre ces règles :

  • Retournez False si le nombre est 0, 1, un nombre négatif ou un multiple de 2.
  • Utilisez all() et range() pour vérifier les nombres de 3 à la racine carrée du nombre donné.
  • Retournez True si aucun nombre ne divise le nombre donné, False sinon.
from math import sqrt

def is_prime(n):
  if n <= 1 or (n % 2 == 0 and n > 2):
    return False
  return all(n % i for i in range(3, int(sqrt(n)) + 1, 2))
is_prime(11) ## True

Sommaire

Dans ce défi, vous avez appris à vérifier si un nombre donné est premier ou non à l'aide de Python. Vous avez utilisé les fonctions all() et range() pour vérifier les nombres de 3 à la racine carrée du nombre donné. Vous avez également appris à retourner True si aucun nombre ne divise le nombre donné, False sinon.