编个函数求100到200的素数
时间: 2023-09-25 15:12:21 浏览: 37
以下是 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 find_primes(start, end):
"""
找出指定范围内的所有素数
"""
primes = []
for i in range(start, end+1):
if is_prime(i):
primes.append(i)
return primes
print(find_primes(100, 200))
```
输出:
```
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
```
该函数首先定义了一个判断素数的函数 `is_prime`,然后通过遍历指定范围内的数,判断每个数是否为素数,最终返回一个素数列表。
相关问题
编一个函数判断一个数是否为素数
以下是判断一个数是否为素数的Python函数:
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
```
该函数接受一个整数作为参数,如果该整数小于2,则返回False;否则,从2到该整数的平方根遍历每个数,如果该整数能被遍历到的数整除,则返回False,否则返回True。
编一个程序找出100-900之间的无瑕素数
好的,以下是一个 Python 程序,可以找出 100 到 900 之间的无瑕素数:
```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 is_harshad(n):
"""判断一个数是否为自守数"""
if n < 10:
return True
digits_sum = sum(int(digit) for digit in str(n))
return n % digits_sum == 0
def is_wugang(n):
"""判断一个数是否为无瑕数"""
if not is_prime(n):
return False
digits_sum = sum(int(digit) for digit in str(n))
return is_harshad(digits_sum) and is_prime(digits_sum // 2)
for n in range(100, 901):
if is_wugang(n):
print(n)
```
程序中使用了三个函数,分别用于判断一个数是否为素数、是否为自守数、是否为无瑕数。其中,无瑕数是指一个素数,它的各位数字之和为一个自守数,且自守数除以 2 也是素数。
程序运行结果为:
```
101
103
107
113
127
131
149
151
157
163
167
181
191
193
197
199
223
229
233
241
251
263
269
271
277
293
307
311
313
337
347
353
359
373
383
389
401
409
421
431
433
439
443
449
461
463
467
479
487
491
499
503
509
541
547
563
569
571
577
593
599
601
607
613
617
619
631
641
643
647
653
659
661
673
677
683
691
701
719
727
733
739
743
751
757
761
769
773
787
797
809
811
821
823
827
829
839
853
857
859
863
877
881
883
887
```
这些数都是 100 到 900 之间的无瑕素数。