首页 > 试题广场 >

Problem C

[编程题]Problem C
  • 热度指数:11297 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
对于给定的字符序列,从左至右将所有的数字字符取出拼接成一个无符号整数(字符序列长度小于100,拼接出的整数小于2^31,),计算并输出该整数的最大素因子(如果是素数,则其最大因子为自身)

输入描述:
有多组数据,输入数据的第一行为一个正整数,表示字符序列的数目,每组数据为一行字符序列。


输出描述:
对每个字符序列,取出所得整数的最大素因子,若字符序列中没有数字或者找出的整数为0,则输出0,每个整数占一行输出。
示例1

输入

3
sdf0ejg3.f?9f
?4afd0s&2d79*(g
abcde

输出

13
857
0
刚学编程不久。用python解的这道题,结果正确,就是超时了。
def zhishu(n):
    if n >= 2:
        lis = []
        for i in range(1, n+1):
            if n % i == 0:
                lis.append(i)
        if len(lis) == 2:
            return n
    else:
        pass
num = []
for i in range(int(input())):
    digit = []
    string = input()
    for j in string:
        if j.isdigit():
            digit.append(j)
    num.append(digit)
num = [''.join(elment) for elment in num]
convert = []
for e in num:
    if e != '':
        convert.append(int(e))
    else:
        convert.append(0)
for k in convert:
    if k == 0:
        print(0)
    else:
        zhiyinshu = []
        for m in range(1, k):
            if zhishu(m) == m and k % m == 0:
                zhiyinshu.append(m)
        print(max(zhiyinshu))


发表于 2020-05-05 20:53:17 回复(0)

问题信息

上传者:小小
难度:
1条回答 4855浏览

热门推荐

通过挑战的用户

查看代码