|
|
发表于 2019-1-18 14:25:13
|
显示全部楼层
本帖最后由 sunrise085 于 2019-1-18 14:31 编辑
哈哈,果然被我猜中了。在那个帖子中已经回答你了。这个是每日一题的220题
程序有两个问题:
第一个,判断是否为质数,循环从2开始,而不是从1开始;
第二个问题,应该是在原数字之前添加数组的最高位,而不是添加3.
我在你的程序基础上帮你修改了一下。
- import math
- def iscom(num):
- x = int(math.sqrt(num))
- for i in range(2,x+1):
- if num % i != 0:
- continue
- else:
- return False
- return True
- def main(num):
- n = 1
- s=str(num)[0]#取num的最高位
- while 1:
- if not(iscom(num)):
- print('%d不是质数'% num)
- break
- n += 1
- num=int(s+str(num))#num最高位前添加一位
- if __name__== '__main__':
- main(31)
复制代码
下面是我的程序,相互交流~~
- def prime(num):
- flag=True
- for j in range(2,int(num**0.5)+1):
- if num%j == 0:
- flag=False
- break
- if flag:
- print("%d是质数" %num)
- else:
- print("%d不是质数" %num)
- return flag
- num=int(input("请输入一个两位整数:"))
- s=str(num)[0]
- while True:
- flag=prime(num)
- if flag:
- num=int(s+str(num))
- else:
- break
复制代码 |
|