Maison  >  Questions et réponses  >  le corps du texte

Comment calculer des nombres premiers inférieurs à 100 en utilisant Python ?

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import math 

L = range(0,101)

def isprime(n):
    if n<= 1:
        return False
    for i in range(2,int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    
    return True **# 这个return为什么要放到for的下面?为什么不放到 if n % i == 0 下面?**

y = filter(isprime, L )

print y
迷茫迷茫2686 Il y a quelques jours919

répondre à tous(3)je répondrai

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-12 09:26:00

    Déterminez si un nombre n est un nombre premier :

    从 2 到 sqrt(n):
       存在一个 n 为因数,不为素数,返回 False
    不存在,为素数,返回 true
    

    Donc,return True是在判断 2 到 sqrt(n) 中的每一个数都不是因数的情况下,就是素数,返回True.Donc en dehors de la boucle, pas à l'intérieur.

    répondre
    0
  • 阿神

    阿神2017-06-12 09:26:00

    Parce que si vous trouvez un nombre qui peut être divisible dans le corps de la boucle for, cela signifie que ce n不是素数, 立马就返回False, 如果for循环体都运行完了, 也没有找到一个能够整除的, 这才能代表这个n是素数, 所以return True doit être placé sous for.

    De plus, vous pouvez vous référer aux idées de mon blog : Python imprime les nombres premiers dans une certaine valeur

    répondre
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-12 09:26:00

    Si vous revenez dans le corps de la boucle, la boucle sera terminée et renvoyée lorsqu'elle rencontrera le premier nombre n % i != 0. Il n'y a aucun moyen de vérifier si n n'est pas divisible par tous les nombres inférieurs à 100 (sauf 1 et lui-même. ), le retour doit donc être dans la boucle in vitro.

    répondre
    0
  • Annulerrépondre