python-3.x - 查找区间中的素数或 ELSE 查找非素数的所有可能除法
问题描述
这段代码有什么问题:
def Prime(a,b):
for n in range(a,b):
for x in range(a,n):
if n % x == 0:
print(n,"equales to",x,"*",n//x)
else:
break
else:
print(n,"is a prime number")
Prime(2,16)
我想打印一个区间内的所有素数,如果不是,打印该非素数的所有可能的除法
输出:
2 is a prime number
4 equales to 2 * 2
6 equales to 2 * 3
6 equales to 3 * 2
8 equales to 2 * 4
10 equales to 2 * 5
12 equales to 2 * 6
12 equales to 3 * 4
12 equales to 4 * 3
14 equales to 2 * 7
解决方案
该for/else
语句的工作方式是,只有当循环耗尽而没有到达break
语句时,else
才会执行。
这与你的意思我猜的相反。
我要做的只是创建一个“标志”变量以在循环结束时进行检查。就像是:
def Prime(a,b):
for n in range(a,b):
is_prime = True
for x in range(a,n):
if n % x == 0:
is_prime = False
print(n,"equales to",x,"*",n//x)
if is_prime:
print(n,"is a prime number")
这给出了Prime(2,16)
:
2 is a prime number
3 is a prime number
4 equales to 2 * 2
5 is a prime number
6 equales to 2 * 3
6 equales to 3 * 2
7 is a prime number
8 equales to 2 * 4
8 equales to 4 * 2
9 equales to 3 * 3
10 equales to 2 * 5
10 equales to 5 * 2
11 is a prime number
12 equales to 2 * 6
12 equales to 3 * 4
12 equales to 4 * 3
12 equales to 6 * 2
13 is a prime number
14 equales to 2 * 7
14 equales to 7 * 2
15 equales to 3 * 5
15 equales to 5 * 3
推荐阅读
- asp.net-core - 使用公共交通或 RabbitMQ 记录服务依赖项
- iiif - Omeka 上的通用查看器获取 TypeError:this._pubsub 未定义
- flutter - 需要在 Flutter 应用中实现 highchart 向下钻取
- javascript - 节点承诺属性
- string - 我想在 Bash 中从此字符串中提取日期并将其保存到变量中
- python - 如何将参数传递给 icon_create_function Python Folium?
- conditional-statements - 获取注册表项的值并继续执行 IF 语句
- reactjs - React-pdf 渲染影响整个 UI 线程
- python - 横向打印姓名两次
- javascript - Axios 使用基本身份验证禁用用户名和密码提示