在数据结构中求 100 以内的素数。 要求: (1)以十进制输出这些素数,每行 10 个,每输出一个素数都要有数秒的停顿,且每输出一个素数,在原素数显示区内消失。 (2)统计这些素数的个数,以十进制形式输出。 (3)计算这些素数之和,以十进制形式输出,并让该和闪烁 3 次。 (4)数据的输入和结果的输出都要有必要的提示,且提示独占一行。 (5)要使用到子程序。
时间: 2024-02-16 15:05:23 浏览: 29
好的,这里是实现代码:
```python
import os
import time
# 求素数
def get_prime():
prime = [True] * 101
prime[0] = prime[1] = False
for i in range(2, 10):
if prime[i]:
for j in range(i*i, 101, i):
prime[j] = False
primes = [i for i in range(2, 101) if prime[i]]
return primes
# 输出素数
def print_primes(primes):
os.system('cls') # 清空屏幕
count = 0
while primes:
prime = primes.pop(0)
count += 1
print(prime, end=' ')
if count % 10 == 0:
print('\n')
time.sleep(1) # 停顿一秒
os.system('cls') # 清空屏幕
# 统计素数个数和求和
def count_sum(primes):
count = len(primes)
s = sum(primes)
return count, s
# 让素数之和闪烁三次
def blink_sum(s):
print('\n素数之和为:', s)
for i in range(3):
time.sleep(0.5)
os.system('cls')
time.sleep(0.5)
print('\n素数之和为:', s)
# 主程序
def main():
print('欢迎使用求100以内素数程序!')
input('按Enter键开始...')
primes = get_prime()
print('100以内的素数为:')
print_primes(primes)
count, s = count_sum(primes)
print('100以内的素数个数为:', count)
blink_sum(s)
print('程序结束,感谢使用!')
if __name__ == '__main__':
main()
```
运行程序后,可以看到程序首先会提示用户按Enter键开始。然后,程序会先求出100以内的素数,并在屏幕上输出每个素数,每个素数输出后会停顿一秒,并且在屏幕上消失。
输出素数之后,程序会统计素数的个数和素数的和,并在屏幕上输出。素数的和会闪烁三次,最后程序会输出结束语并退出。