请写一个程序求出从 2 到 N 的所有素数以及半素数
时间: 2024-10-03 22:02:59 浏览: 33
当然可以。首先,我们先解释一下什么是素数和半素数。素数是指只有两个正因数(1和自身)的自然数,而半素数也叫阿姆斯特朗数,是指其各位数字立方和等于该数本身的数。
下面是Python的一个简单程序,用于找出从2到N的所有素数和半素数:
```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
def is_armstrong(num):
digits = [int(digit) for digit in str(num)]
sum_of_cubes = sum([digit**3 for digit in digits])
return num == sum_of_cubes
def find_primes_and_semiprimes(N):
primes = []
semiprimes = []
for num in range(2, N+1):
if is_prime(num):
primes.append(num)
if is_prime(num) and is_armstrong(num):
semiprimes.append(num)
return primes, semiprimes
# 使用示例
N = 100
prime_list, semiprime_list = find_primes_and_semiprimes(N)
print("从2到{}的所有素数:{}".format(N, prime_list))
print("从2到{}的半素数:{}".format(N, semiprime_list))
阅读全文