|
20鱼币
①循环n=range(2,10)提取2-10之间的数值范围(2,3,4,5,6,7,8,9,)一直循环到10
②循环x=range(2,n)提取2-n之间的数值范围,比如n=3,那x也是取2到3之间范围
③如果n%x==0,就打印下面的输出信息,比如:现在的n=4,那么也是x=4,以此类推
④如果n=4,x=4,那么公式就是这样写4=4*4//4
⑤是返回上一层
那么得出得答案是2,3,5,7都是素数
4,6,8,9就不是呢
求通俗易懂的解题思路!!!!
因为本人数学不太好
①、②:range(2, 10) 是从 2~9 没有 10 ,同理 range(2, n) 是 2 ~ (n-1)
③、④:理解没错,需要注意 % 是求余符号, 4 % 2 也是 为 0 ,所以也成立
通俗理解:因为素数定义是除 1 和 自身以外不能被任何整数整除的数,所以嵌套了两层循环
第一层用于表示此时的数,第二层用于遍历 2 到 自身-1 的数,只要在循环中发现一个 x 数 对 n 整除时,说明他不满足 素数 条件,就直接进入 if 循环 break 退出
而又因为 for - else 结构中,else 执行的条件是循环正常退出(不遇到 break)才能执行 else 代码,所以若不是素数则就是通过 break 退出循环,而后不执行 else ,开始下一次循环
|
最佳答案
查看完整内容
①、②:range(2, 10) 是从 2~9 没有 10 ,同理 range(2, n) 是 2 ~ (n-1)
③、④:理解没错,需要注意 % 是求余符号, 4 % 2 也是 为 0 ,所以也成立
通俗理解:因为素数定义是除 1 和 自身以外不能被任何整数整除的数,所以嵌套了两层循环
第一层用于表示此时的数,第二层用于遍历 2 到 自身-1 的数,只要在循环中发现一个 x 数 对 n 整除时,说明他不满足 素数 条件,就直接进入 if 循环 break 退出
而又因为 fo ...
|