要求:从键盘输入一个整数“a”(a100),将这个整数作为循环的上限值,求1---“a”之间的素数,并将素数和非素数分别输出。
时间: 2024-02-03 15:14:58 浏览: 72
以下是Python语言的实现代码:
```python
a = int(input("请输入一个整数a(1<=a<=100): "))
is_prime = [True] * (a+1) # 先假设所有数都是素数
is_prime[0], is_prime[1] = False, False # 0和1不是素数
for i in range(2, a+1):
if is_prime[i]: # 如果i是素数,则将其倍数全部标记为非素数
for j in range(2*i, a+1, i):
is_prime[j] = False
prime_nums = []
non_prime_nums = []
for i in range(1, a+1):
if is_prime[i]:
prime_nums.append(i)
else:
non_prime_nums.append(i)
print("素数有:", prime_nums)
print("非素数有:", non_prime_nums)
```
运行示例:
```
请输入一个整数a(1<=a<=100): 20
素数有: [2, 3, 5, 7, 11, 13, 17, 19]
非素数有: [1, 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20]
```
阅读全文