在东边 发表于 2018-9-10 15:37:36

def fun206(n):

    def fib():
      a, b = 0, 1
      while 1:
            a, b = b, a + b
            yield a

    g = fib()
    f = filter(lambda x: len(str(x)) > 1 and not x % eval('+'.join(str(x))), g)
    return

print(fun206(10))

Mipha 发表于 2018-9-10 15:38:32

来哦做作业

Henriz 发表于 2018-9-10 16:57:25

本帖最后由 Henriz 于 2018-9-10 16:59 编辑

def zhengchu(num):
    a = b = 1
    i = 1
    while 1:
      a , b = b , a+b
      n = 0
      if len(str(a))>1:
            for m in range(len(str(a))):
                n += int(str(a))
            if a%n == 0:
                yield a
      i += 1
      if i > num:
            break

m = 0
for i in zhengchu(500):
        if m < 10:
                print(i)
                m += 1

zhou995287902 发表于 2018-9-10 17:27:08

本帖最后由 zhou995287902 于 2018-9-10 17:56 编辑

def feibonacci(num):
    a,b = 0,1
    count = 0
    while count <num:
      yield a
      a,b = b,a+b
      count +=1


def fun206(n):
    result = list()
    for i in feibonacci(500):
      if i in :
            pass
      else:
            num = 0
            for each in str(i):
                num+=int(each)
            if i%num==0:
                result.append(i)
      if len(result)==n:
            break
    print(result)

if __name__ == '__main__':
    fun206(10)

zzzsy1993 发表于 2018-9-10 18:07:35

def feib():
    a = 0
    b = 1
    while True:
      a,b = b,a+b
      yield b
count = 0
for i in feib():
    num = 0
    for j in str(i):
      num += int(j)
    if i % num == 0 and i > 8:
      count += 1
      print(i)
    if count == 10:
      break

一y样 发表于 2018-9-10 19:08:31

{:10_277:}

祥哥威武 发表于 2018-9-10 19:29:14

def getNum(n=10):
    i, j = 1, 1
    list0 = []
    while len(list0) < n:
      i, j, k, l = i + j, i, 0, i
      if l > 10:
            while l > 0:
                k += l % 10
                l //= 10
            if i % k == 0:
                list0.append(i)
    return list0

print(getNum())

久疤K 发表于 2018-9-10 20:25:52

>>> def fb():
        a,b=1,1
        while True:
                yield a
                a,b = b, a+b

               
>>> def fun( x=10 ):
        f = fb()
        n = 0
        res = []
        while n < x:
                t = next(f)
                if t < 10:
                        continue
                r = sum(int(k) for k in str(t))
                if t % r == 0:
                        n += 1
                        res.append(t)
        return res

>>> fun()

>>>

坠入暮光 发表于 2018-9-10 21:36:33

def fab(n):
        if n <= 2:
                return n
        else:
                return fab(n-1) + fab(n-2)
i = 6
res = []
while True:
        n = fab(i)
        sum_ = sum()
        if n % sum_ == 0:
                res.append(n)
        i += 1
        if len(res) == 10:
                for i in res:
                        if res.index(i) != 9:
                                print(i, end=',')
                        else:
                                print(i)
                break

CC柴 发表于 2018-9-10 21:49:16

本帖最后由 CC柴 于 2018-9-10 21:50 编辑

def fb():
    a,b,c = 1,2,0
    while True:
      a,b = b,a+b
      n = str(a)
      if len(n) > 1:
            sum = 0
            for i in n:
                sum += int(i)
            if a % sum == 0:
                c += 1
                print(a)
                if c > 9:
                  break

jiaozhu80 发表于 2018-9-10 21:53:53

def function(n):
    n3=1
    n1=1
    n2=1
    while (n>2):
      n3=n1+n2
      n1=n2
      n2=n3
      n-=1
    return n3
temp=[]
for i in range(1,1000):
    result=function(i)
    if result not in :
      value=result
      count=0
      while result>0:
            count+=result%10
            result//=10
      if value%count==0:
            temp.append(value)
    if len(temp)==10:
      print(temp)
      break
      

Legend丶Hu 发表于 2018-9-11 00:07:03

def sum(n):
    s = 0
    while n:
      s += n % 10
      n //= 10
    return s
a =
for i in range(2,140):
    t = a + a
    a.append(t)
cnt = 0
for each in a:
    if cnt == 10:
      break;
    if each > 8 and each % sum(each) == 0:
      cnt += 1
      print(each)

>>
21
144
2584
14930352
86267571272
498454011879264
160500643816367088
114059301025943970552219
5358359254990966640871840
555565404224292694404015791808

stone1005 发表于 2018-9-11 00:11:13

学习

谁与争锋 发表于 2018-9-11 07:02:38

#存放数据
list1=[]
#存放斐波那契数
list2=
#循环
while len(list1)<10:
    list2[-2],list2[-1]=list2[-1],list2[-1]+list2[-2]
    z=list2[-1]
    y=str(z)
    if len(y)>=2:
      num1=0
      for x in y:
            num1+=int(x)
      if list2[-1]%num1==0:
            list1.append(z)
print(list1)

zhou123456 发表于 2018-9-11 09:45:14

看似简单,实操

yuc_mi 发表于 2018-9-11 11:12:44

def fab():
    a1 = 1
    a2 = 1
    a3 = 1
    bb = 0
    count = 0
    list1 = []

    while count < 10:
      a3 = a1 + a2
      a1 = a2
      a2 = a3
      
      if a3 > 9:
            bb = 0
            for i in str(a3):
                bb = bb + int(i)
            ifa3 % bb:
                continue
            else:
                print(a3)
                count += 1
                list1.append(a3)
    print(list1)

result = fab()

graceasyi 发表于 2018-9-11 13:28:45

def fib_itr(n):
    if n < 0:
      return None
    if n <= 1:
      return (0, 1)
    a, b = 0, 1
    for i in range(n-1):
      a, b = b, a+b
    return b


i = 7
n = 0
while n < 10:
    fbi = fib_itr(i)
    sm = sum()
    if not fbi % sm:
      print(fbi)
      n += 1
    i += 1

结果:
21
144
2584
14930352
86267571272
498454011879264
160500643816367088
114059301025943970552219
5358359254990966640871840
555565404224292694404015791808

骨傲天 发表于 2018-9-11 14:53:06

def b():
    a=1
    b=0
    while True:
      yield a+b
      a,b=a+b,a
x=1
for i in b():
    if i<10:
      continue
    elif x<11:
      i=str(i)
      r=0
      for y in i:
            r+=int(y)
      if not int(i)%r:
            print(i)
            x+=1
    else:
      break

老猫NAKE 发表于 2018-9-11 15:55:04


def get_Ineed():
    T = True
    t = []
    i = 0
    k = 1
    while T:
       # if len(str(k))>100:
       #   break
         
      fb = []
      i = i+k
      k = k+i
      fb.append(i)
      fb.append(k)
      #print("运行中")
#开始获取特殊斐波那契数
      for each in fb:
            if each>=10:#过滤(1,2,3,5,8)            
                tem = []
                eg = 0
                each_cp = each
                #print(each)#检查传入数
                while True:
                  if len(str(each))>=2:
                        v = each%10
                        each = each//10
                        tem.append(v)
                  else:
                        tem.append(each)
                        #print(tem)
                        break
                #print(tem)   
                for tvar in tem:
                  eg = tvar+eg
                if len(t)<10:
                  #print(t)
                  if each_cp % eg == 0 :
                        t.append(each_cp)
                  else:
                        pass
                else:
                  T = False
            else:
                pass
    for each in t:
      print(each)
      

apple_wt 发表于 2018-9-11 16:53:37

学习下
页: 1 [2] 3
查看完整版本: Python:每日一题 206