Comment calculer des nombres premiers inférieurs à 100 en utilisant Python ?
迷茫
迷茫 2017-06-12 09:24:00
0
3
948
#!/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
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(3)
女神的闺蜜爱上我

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.

阿神

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

扔个三星炸死你

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal