首页 > 试题广场 >

大整数的因子

[编程题]大整数的因子
  • 热度指数:10794 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k.

输入描述:
若干个非负整数c,c的位数<=30
每行一个c


输出描述:
每一个c的结果占一行
1) 若存在满足 c%k == 0 的k,输出所有这样的k,中间用空格隔开,最后一个k后面没有空格。
2) 若没有这样的k则输出"none"

注意整数溢出问题
不要对-1进行计算
示例1

输入

30
72
13
-1

输出

2 3 5 6
2 3 4 6 8 9
none
while True:
    try:
        n=int(input())
        if n==-1:
            break
        L=[]
        for x in range(2,10):
            if n%x==0:
                L.append(x)
        if len(L)==0:
            print("none",end=' ')
        else: 
            for x in L:
                print(x,end=' ')
        print()
    except:
        break
发表于 2021-03-21 14:34:39 回复(0)
try:
    while True:
        num = int(input())
        result = []
        for i in range(2,10):
            if num % i == 0:
                result.append(i)
        if result:
            print(" ".join(map(str,result)))
        else:
            print('none')
except Exception:
    pass
编辑于 2018-10-08 22:24:16 回复(0)

要用raw_input().strip(),input()不可以

while True:
    try:
        c = int(raw_input().strip())
        if c==-1:
            break
        flag = 0
        result = ""
        for k in xrange(2, 10):
            if c%k==0:
                if flag==0:
                    result+=str(k)
                    flag = 1
                else:
                    result+=" "+str(k)
        if flag == 0 :
            print "none"
        else:
            print result
    except:
        break
发表于 2018-02-28 14:20:36 回复(0)
while True:
    try:
        a,res=int(input()),[]
        if a==-1:break
        for i in range(2,10):
            if a%i==0:
                res.append(str(i))

        print(" ".join(res) if res else "none")
    except:
        break
发表于 2017-10-07 21:38:50 回复(2)
while 1:
    try:
        n=int(input())
        if n==-1:
            break
        k=2
        s=[]
        while k<=9:
            if n%k == 0:
                s.append(str(k))
            k+=1
        if s:
            print(' '.join(s))
        else:
            print('none')
    except:
        break

发表于 2017-09-04 15:22:17 回复(0)
try:
    while 1:
        c = int(raw_input())
        if c == -1:
            break
        result = [str(i) for i in xrange(2, 10) if c % i == 0]
        print 'none' if len(result) == 0 else ' '.join(result)
except:
    pass

发表于 2016-12-27 15:39:10 回复(0)

问题信息

难度:
6条回答 9106浏览

热门推荐

通过挑战的用户

查看代码