Python学习笔记(杂记)

求素数的方法

一、完全遍历法

  • 例:求0-100以内的素数
    基本思路:
    设计一个变量J,让J在内层循环增长。对于每一个待判定的数 i,当i小于指定范围时,进入外层while循环,让每一个i去除每一个J看看能不能被整除,如果可以则不是素数,如果对于每一个J,这一个i都不能整除,则这个i是素数。
    由于素数的因数只有1和它自己,因此,J可以从2起。
    执行过程:
    首先对 iJ进行一个除法运算,当J<=i/j时(例如i=6时即进入while循环)进入内层while循环。对i与J进行取余运算。如果i是J的整数倍,则i%j就是0(即没有余数)。由于一个not的作用,则会使结果由0变为1,从而使if判断有效,进入里面的break,使得内层while循环结束,即执行后面的if语句。
    我们还是以i=6为例,当i=6时
    J=2,
    J<=3(6/2)
    NOT(6%2 == 0)==1,执行break
    进入if(j > i/j)判断.同时,J=2,i/J=3,所以不满足if条件,即不会输出6是素数,即6不会是素数。
    如果i不是J的整数倍,比如以i=9为例。当i=9时:
    J=2,
    J<=4 (9/2),进入while循环,NOT(9%2 ==1)==0,因此不会执行if后面的语句,即继续进行while内层循环,然后 j += 1,即J=3,然后J<=9/3,进入if进行判断,NOT(9%3 ==0)==1,if判断有效,执行break,while内层循环中断,然后不满足J>i/J,因此不会输出9是素数,从而完成了判断。
    然后i++,对I=10进行判断。依次循环判断即可。
#break,素数
i = 2
while(i < 100):  
   j = 2
   while(j <= (i/j)):
      if not(i%j):break
      j = j + 1
   if (j > i/j) : print (i," 是素数") 
   i = i + 1

print("Good bye!")

知识点:此程序主要是涉及了循环嵌套和break语句。需要和后面continue语句进行区分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值