Bagaimana untuk mengira nombor perdana dalam 100 menggunakan Python?
迷茫
迷茫 2017-06-12 09:24:00
0
3
941
#!/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
迷茫
迷茫

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

membalas semua(3)
女神的闺蜜爱上我

Tentukan sama ada nombor n ialah nombor perdana:

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

Jadi,return True是在判断 2 到 sqrt(n) 中的每一个数都不是因数的情况下,就是素数,返回True.Jadi di luar gelung, bukan di dalam.

阿神

Sebab jika anda mendapati nombor yang boleh dibahagi dalam badan gelung for, bermakna n不是素数, 立马就返回False, 如果for循环体都运行完了, 也没有找到一个能够整除的, 这才能代表这个n是素数, 所以return True ini perlu diletakkan di bawah untuk.

Selain itu, anda boleh merujuk kepada idea dalam blog saya: Python mencetak nombor perdana dalam nilai tertentu

扔个三星炸死你

Jika anda kembali dalam badan gelung, gelung akan ditamatkan dan dikembalikan apabila ia menemui nombor n % i != 0 yang pertama Tidak ada cara untuk mengesahkan sama ada n tidak boleh dibahagikan dengan setiap nombor dalam 100 (kecuali 1 dan dirinya sendiri. ), jadi pulangan perlu berada dalam gelung in vitro.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan