测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A44155. 编程实现:打印出 1~1000 之间包含 3 的数字;如果 3 是连在一起的(如 233)则在数字前加上&;如果这个数字是质数则在数字后加上*,例:(3,13*,23*,&33,43*…&233*…)。输入:无输出:按照题意输出的数字,每行一个数字;样例输出:3 13* 23* &33 ……

填空题 困难

题目描述

编程实现:

打印出 1~1000 之间包含 3 的数字;

如果 3 是连在一起的(如 233)则在数字前加上&;

如果这个数字是质数则在数字后加上*,例:(3,13*,23*,&33,43*…&233*…)。

输入:

无

输出:

按照题意输出的数字,每行一个数字;

样例输出:

3
13*
23*
&33
……

参考答案

def is_prime(n): """判断一个数是否为质数""" if n <= 1: return False if n == 2: return True if n % 2 == 0: return False # 检查从3到平方根的奇数 for i in range(3, int(n**0.5) + 1, 2): if n % i == 0: return False return True # 遍历1到1000的所有数字 for num in range(1, 1001): num_str = str(num) # 只处理包含'3'的数字 if '3' in num_str: prefix = '&' if '33' in num_str else '' # 连续3的前缀 suffix = '*' if is_prime(num) else '' # 质数的后缀 # 拼接并打印结果 print(f"{prefix}{num_str}{suffix}")

答案解析

评判标准:

10 分:完成打印 1~1000 之间包含 3 的数字

30 分:在 10 分标准的基础上,找出其中的连 3,前面加&

50 分:在 30 分标准的基础上,找出其中的质数,后面加*

上一题 下一题