描述
我的微信ID是大写字母WHUT后面的数字是两个素数连在一起,大的在前,小的在后,如果我告诉你两数的乘积是多少,你能计算出我的ID号吗?
如果输入一个[0-9]之间的数字,你能统计出从1开始到我ID中的数字的序列里,一共出现多少次这个数字吗?
输入格式
第一行输入ID中两个素数的乘积
第二行输入一个[0-9]之间的数字
输出格式
第一行输出ID号
第二行输出数字的次数
输入输出示例
输入 196409
3
输出 WHUT997197
599140
from math import*
def isprime(i):
for j in range(2,int(sqrt(i))+1):
if i%j==0:
return 0
return 1
x=int(input())
y=int(input())
t=int(sqrt(x))
for a in range(t,1,-1):
if(isprime(a)):
b=x//a
if(b==x/a and isprime(b)):
break
id=str(b)+str(a)
ls=[]
sum=0
for i in range(1,int(id)+1):
ls=list(map(int,str(i)))
for j in ls:
if j==y:
sum+=1
print('WHUT'+id)
print(sum)
虽然答案是对的,但方法不好,运行超时了,有知道怎么改的吗