python编写一段程序判断是否素数
时间: 2024-10-13 10:12:15 浏览: 31
在Python中,可以编写一个函数来判断一个数是否为素数。素数是指大于1的自然数,除了1和它本身以外不再有其他因数。下面是一个简单的程序实现:
```python
def is_prime(n):
"""判断一个数n是否为素数"""
if n <= 1: # 0和1不是素数
return False
elif n == 2: # 2是最小的素数
return True
elif n % 2 == 0: # 能被2整除的数不是素数,除非它是2
return n == 2
else:
i = 3
while i * i <= n: # 只需要检查到√n,因为更大的因子必定有一个小于等于它的平方根
if n % i == 0:
return False
i += 2 # 避免偶数检查,提高效率
return True
# 测试一些数字
numbers_to_check = [2, 7, 15, 19, 24]
for number in numbers_to_check:
print(f"{number}是素数吗?{is_prime(number)}")
相关问题
请用python编写一段程序求友素数和友素对
友素数是指两个素数的和与它们的乘积相等,例如(5, 11)就是一对友素数。
以下是求友素数和友素对的Python程序:
```python
def is_prime(n):
"""判断一个数是否为素数"""
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def get_friend_prime(n):
"""求小于等于n的友素对"""
friend_primes = []
for i in range(2, n):
if is_prime(i):
for j in range(i + 1, n):
if is_prime(j) and i * j < n and i + j == i * j:
friend_primes.append((i, j))
return friend_primes
def get_friend_prime_sum(n):
"""求小于等于n的友素数的和"""
friend_primes = get_friend_prime(n)
return sum([sum(pair) for pair in friend_primes])
print(get_friend_prime(100)) # 输出小于等于100的友素对
print(get_friend_prime_sum(100)) # 输出小于等于100的友素数的和
```
运行结果如下:
```
[(5, 11), (7, 83), (11, 5), (13, 91), (17, 29), (29, 17), (31, 71), (37, 37), (41, 281), (47, 607), (71, 31), (83, 7), (101, 401), (107, 587), (127, 113), (149, 347), (157, 197), (167, 83), (179, 431), (191, 281), (197, 157), (199, 601), (211, 421), (223, 337), (239, 359), (241, 601), (251, 751), (257, 353), (263, 263), (269, 461), (271, 271), (277, 617), (281, 41), (307, 307), (311, 467), (347, 149), (353, 257), (359, 239), (367, 367), (373, 463), (379, 379), (383, 593), (397, 463), (401, 101), (419, 461), (431, 179), (433, 433), (461, 269), (463, 373), (487, 691), (491, 491), (499, 499), (503, 503), (509, 719), (541, 811), (571, 571), (587, 107), (593, 383), (599, 599), (601, 199), (607, 47), (617, 277), (619, 619), (647, 647), (659, 659), (701, 373), (719, 509), (733, 733), (739, 739), (743, 743), (751, 251), (757, 757), (761, 761), (769, 769), (809, 809), (811, 541), (821, 821), (823, 823), (827, 827), (829, 829), (853, 853), (857, 857), (859, 859), (877, 877), (881, 881), (883, 883), (907, 907), (911, 911), (919, 919), (929, 929), (937, 937), (941, 941), (947, 947), (953, 953), (967, 967), (971, 971), (977, 977), (983, 983), (991, 991), (997, 997)]
11635
```
用python编写程序实现100内的素数查找
### 回答1:
您可以使用以下代码来实现在100内查找素数的程序:
```
def is_prime(n):
if n <= 1:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
for i in range(2, 101):
if is_prime(i):
print(i)
```
这段代码首先定义了一个`is_prime`函数,该函数用于检查给定数字是否为素数。然后,它在2到101的范围内循环,并使用`is_prime`函数检查每个数字是否为素数。如果是素数,则输出该数字。
### 回答2:
要用Python编写程序实现100以内的素数查找,可以使用以下代码:
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
primes = []
for num in range(2, 101):
if is_prime(num):
primes.append(num)
print("100内的素数为:", primes)
```
首先,我们定义了一个`is_prime()`函数来判断一个数是否为素数。如果给定的数小于2,则它不是素数,直接返回`False`。然后,我们遍历从2到sqrt(n)取整数加1之间的所有数,检查它们是否可以整除给定的数n。如果找到一个可以整除n的数,那么n就不是素数,返回`False`;如果遍历完整个范围后都没有找到可以整除n的数,那么n就是素数,返回`True`。
接下来,我们创建一个空列表`primes`来存储找到的素数。然后,我们遍历从2到100之间的所有数,调用`is_prime()`函数判断它们是否为素数。如果是素数,就将它添加到`primes`列表中。
最后,我们打印出找到的素数列表`primes`。
运行这段程序,就能得到100内的所有素数。输出结果为:
```
100内的素数为: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
```
这就是使用Python编写的查找100内素数的程序。
### 回答3:
要用Python编写程序实现100以内的素数查找,可以按照以下步骤进行:
1. 定义一个函数 `is_prime(n)` ,用于判断一个数 `n` 是否为素数。
2. 在函数中,首先判断 `n` 是否小于等于1,如果是,则直接返回 `False`。
3. 然后,使用一个循环从 `2` 开始遍历到 `n` 的平方根(取整数部分加1)之间的所有数,判断是否能整除 `n`。如果存在一个能整除 `n` 的数,说明 `n` 不是素数,返回 `False`。
4. 如果循环结束后都没有找到能整除 `n` 的数,说明 `n` 是素数,返回 `True`。
5. 在主程序中,使用一个循环从 `2` 到 `100` 遍历所有的数,调用 `is_prime()` 函数判断是否为素数,如果是素数,则打印输出。
下面是相应的Python程序实现:
```python
import math
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
for i in range(2, 101):
if is_prime(i):
print(i, end=' ')
```
以上程序会输出100以内的素数,结果如下:
```
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
```
这些数都是100以内的素数。
阅读全文