
小王的 E-Mail 邮箱密码忘记了,但他需要收一封很重要的来信,请你帮他尽可能找出密码。
他零星记得密码的信息如下 :
① 密码是六位数字,前面两位为 31 ;
② 最后两位数字相同 ;
③ 能被 16 和 46 整除。
请你找出所有可能的密码及统计个数。
【算法分析】
我们只要把 31 开头的所有六位数进行枚举,满足条件“最后两位数字相同且是 16 和 46的倍数”的数就是我们要求的答案。
分析题目可知,我们只需要枚举六位数中的后四位数字,如果某数满足条件并且是 16 和6 的倍数,我们再求出此数个位和十位上的数字,如果相等就是本题的答案。
【程序实现】
【运行结果】
- n=0
- for i in range(0,10000):
- s=310000+i
- if s % 46==0 and s % 16==0:
- a=s%10
- b=(s%100)//10
- if a==b:
- print(s)
- n=n+1
- print(n)
- 312800
- 315744
- 318688
- 3