打印出 1~1000 之间包含 3 的数字
如果 3 是连在一起的(如 233)则在数字前加上&;
如果这个数字是质数则在数字后加上*,例:(3,13*,23*,&33,43…&233…)。
我写的代码是
for i in range(1001):
data=str(i)
if '33' in data:
for j in range(2,i):
if i%j==0:
print("&"+data)
break
else:
print(data+"")
elif '3' in data:
for k in range(2,i):
if i%k==0:
print(data)
break
else:
print(data+"")
但是是有错误的,问题出在哪里呢
Python输出包含3的数字
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
技术专家团-Plio大咸鱼 2021-10-05 15:04关注麻烦用代码格式粘贴一下你写的代码,方便调试
示例代码如下:import math def is_prime(number): if number > 1: if number == 2: return True if number % 2 == 0: return False for current in range(3, int(math.sqrt(number) + 1), 2): if number % current == 0: return False return True return False for i in range(1000): j=str(i) if '3' in str(i): if is_prime(i): j=j+'*' if '33' in j: j='&'+j print(j,end=' ')
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 2无用