cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mengira nombor perdana dalam 100 menggunakan 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
迷茫迷茫2732 hari yang lalu956

membalas semua(3)saya akan balas

  • 女神的闺蜜爱上我

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

    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.

    balas
    0
  • 阿神

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

    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

    balas
    0
  • 扔个三星炸死你

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

    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.

    balas
    0
  • Batalbalas