Python 3.x 找出区间中的素数,或者找出非素数的所有可能的除法
此代码有什么问题:Python 3.x 找出区间中的素数,或者找出非素数的所有可能的除法,python-3.x,Python 3.x,此代码有什么问题: 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")
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
我猜这与你的意思正好相反
我要做的就是创建一个“flag”变量,在循环结束时进行检查。比如:
def Prime(a,b):
对于范围(a,b)内的n:
_prime=True吗
对于范围(a,n)内的x:
如果n%x==0:
素=假吗
打印(n,“等于”,x,“*”,n//x)
如果是_素数:
print(n,“是素数”)
这在素数(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