如何用Python编程来打印出从1到1000的所有素数?要求每十个数换行,每个数字占据五个字符宽度并实现左对齐显示,请提供相应的代码示例。
时间: 2024-11-06 18:18:40 浏览: 40
在Python中,我们可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)来找出所有小于或等于给定范围内的素数。然后,我们可以按照您的要求格式化输出。以下是满足条件的代码示例:
```python
def print_primes(n):
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
primes = []
sieve = [True] * (n + 1)
for i in range(2, n + 1):
if sieve[i]:
primes.append(i)
# Mark multiples as non-prime
for multiple in range(i*i, n + 1, i):
sieve[multiple] = False
count = 0
for prime in primes:
# Format output with five characters per number and left alignment
formatted_num = str(prime).rjust(5)
print(formatted_num, end=" ")
count += 1
# Print a new line every ten numbers
if count % 10 == 0:
print()
# Call the function to print all primes from 1 to 1000
print_primes(1000)
```
这段代码首先定义了一个辅助函数`is_prime()`用于检查是否为素数,然后使用埃拉托斯特尼筛法找到小于1000的素数。最后,通过循环遍历素数列表,按要求格式化并输出结果。
阅读全文