首页 > 试题广场 >

变种水仙花

[编程题]变种水仙花
  • 热度指数:68611 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。

例如:

655 = 6 * 55 + 65 * 5

1461 = 1*461 + 14*61 + 146*1

求出 5位数中的所有 Lily Number。


输入描述:


输出描述:
一行,5位数中的所有 Lily Number,每两个数之间间隔一个空格。
for i in range(10000,100000):
    a=str(i)
    b=int(a[0])*int(a[1:])+int(a[0:2])*int(a[2:])+int(a[0:3])*int(a[3:])+int(a[0:4])*int(a[4:])
    if i==b:
        print(i,end=" ")

发表于 2025-02-20 10:23:25 回复(0)
for i in range(10000,100000):
    if i == (i//10000)*(i%10000) + (i//1000) *(i%1000) + (i//100)*(i%100) + (i//10) * (i%10):
        print(i,end=" ")

发表于 2024-11-16 05:31:36 回复(0)
for x in range(10000, 100000):
    y=0
    for n in range(1, len(str(x))):
        y += int(str(x)[:n])*int(str(x)[n:])
    if y == x:
        print(y, end=" ")

发表于 2022-08-27 22:54:26 回复(0)
for i in range(10000, 100000):
    # a = [i%10, i//10, i%100, i//100, i%1000, i//1000, i%10000, i//10000]
    cal = (i%10)*(i//10) + (i%100)*(i//100) + (i%1000)*(i//1000)+ (i%10000)*(i//10000)
    if cal == i:
        print(i, end=' ')

发表于 2022-07-07 15:37:44 回复(0)
ls = [] for i in range(10000,100000):
    count,exchange = 0,i
    count+= (i%10)*(i//10)
    count+= (i%100)*(i//100)
    count+= (i%1000)*(i//1000)
    count+= (i%10000)*(i//10000) if(count == exchange):
        ls.append(exchange) for i in range(len(ls)):
    ls[i] = str(ls[i])
s = " ".join(ls) print(s)
发表于 2022-05-22 10:01:20 回复(0)
res = []
for n in range(10000, 100000):
    # 拆分
    total = 0
    for i in range(len(str(n))-1):
        a, b = int(str(n)[:i+1]), int(str(n)[i+1:])
        total += a*b
    if n == total:
        res.append(str(n))
print(' '.join(res))

发表于 2022-03-27 11:03:17 回复(0)
for num in range (10000,100000):
    sum = 0
    for i in range (1,5):
        a = int(str(num)[:-i]) * int(str(num)[5-i:])
        sum = sum + a
    if sum == num:
        print(num,end=" ")

发表于 2022-01-22 10:35:09 回复(0)
for lily in range(10000, 100000):
    s_lily = str(lily)
    lily1 = int(s_lily[0:1])*int(s_lily[1:])
    lily2 = int(s_lily[0:2])*int(s_lily[2:])
    lily3 = int(s_lily[0:3])*int(s_lily[3:])
    lily4 = int(s_lily[0:4])*int(s_lily[4:])
    lily5 = int(s_lily[0:5])*int(s_lily[-1:])
    s = lily1 + lily2 + lily3 + lily4 + lily5
    if s == lily:
        print(lily, end=(" "))
发表于 2022-01-20 23:17:23 回复(0)
def f(n):
    s = 0
    for i in range(1,len(str(n))):
        a = int(str(n)[:i])
        b = int(str(n)[i:])
        s += a*b
    return s

for i in range(10000,100000):
    if f(i) == i:
        print(i,end=' ')

发表于 2021-10-07 09:50:58 回复(0)
for num in range(10000,100000):
    result = 0
    for i in range(1, 5):
        num1 = int(num/(10**(i)))
        num2 = int(num%(10**(i)))
        res = num1*num2
        result = result + res
    if result == num:
        print(result,end=' ')
发表于 2021-09-17 10:12:41 回复(0)
for i in range(10000, 100000):
    s = str(i)
    sum = 0
    for j in range(1, len(s)):
        sum += int(s[:j])*int(s[j:])
    if sum == i:
        print(i, end=' ')

发表于 2021-09-16 14:44:59 回复(0)
for i in range(10000,100000):
    a=int(i/10000)
    b=int((i-a*10000)/1000)
    c=int((i-a*10000-b*1000)/100)
    d=int((i-a*10000-b*1000-c*100)/10)
    e=i-a*10000-b*1000-c*100-d*10
    if a*(i-a*10000)+(a*10+b)*(c*100+d*10+e)+(a*100+b*10+c)*(d*10+e)+(a*1000+b*100+c*10+d)*e==i:
        print(i,end=' ')
发表于 2021-09-05 08:51:53 回复(0)
num = 10000
for num in range(10000,100000):
    lily_num = (num // 10000) * (num % 10000) + (num // 1000) * (num % 1000) + (num // 100) * (num % 100) + (num // 10) * (num % 10)
    if num == lily_num:
        print(num,end=' ')

发表于 2021-08-21 23:58:31 回复(0)
for a in range(10000,100000):
    yi=a//10000
    yi_=a-yi*10000
    er=a//1000
    er_=a-er*1000
    san=a//100
    san_=a-san*100
    si=a//10
    si_=a-si*10
    p=yi*yi_+er*er_+san*san_+si*si_
    if a==p:
        print(a,end=' ')

发表于 2021-07-27 15:25:23 回复(0)
求助:为什么这个没有输出呢?😣
l=[]
for i in range(10000,100000):
    s=str(i)
    n=0
    for j in range(1,3):
        n+=int(s[:j])*int(s[j:])
    if i==n:
        l.append(i)
print(l)
发表于 2021-07-21 10:20:55 回复(1)
i=10000 flag=1 for i in range(10000,99999):
    a1=i//10000  b1=i%10000  sum1=a1*b1
    a2=i//1000  b2=i%1000  sum2=a2*b2
    a3=i//100  b3=i%100  sum3=a3*b3
    a4=i//10  b4=i%10  sum4=a4*b4
    sum=sum1+sum2+sum3+sum4 if sum==i: if flag==1: print(i,end=' ') else: print(" "+i)



发表于 2021-07-19 08:52:43 回复(0)