鱼C论坛

 找回密码
 立即注册
查看: 3346|回复: 19

[技术交流] 小练习:20160704 找出小于1000的数字中令1/d拥有最长循环圈的数字d

[复制链接]
发表于 2016-7-3 21:05:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 冬雪雪冬 于 2016-7-11 13:51 编辑

从现在开始我们要开展一批欧拉计划的习题练习。
其实在我们论坛中已有欧拉计划的板块,可能有些鱼油还没注意到。
什么是欧拉计划:http://bbs.fishc.com/thread-60405-1-1.html
我们欧拉板块现已给出了81道题,这批练习将从欧拉计划中选题。其实用python语言完成有很多的优势,可以更简洁更方便的实现。
如果大家有兴趣也可浏览欧拉的英文网站:https://projecteuler.net/archives
这里已经有了500余题,并且你每做对一题,就可以下载到参考答案的pdf文件,看看你的实现方法与参考答案有什么不同,以利于迅速提高自己的水平。


                               
登录/注册后可看大图

好了言归正传,我们开始做小练习。




题目要求:
以python语言完成,如果是python2请注明。
程序以代码文字格式发帖。
题目比较简单,注重程序效率和创意。
答题在一周内完成,即7.11 10:00之前,其后将公开大家的答案,并评比成绩。

另程序和答案可以在网上搜到,希望大家独立完成。

----除列出程序外,请给出输出的结果。----

题目:

分子为1的分数称为单分数。分母是 2 到 10 的单分数用十进制表示如下:

1/2        =        0.5
1/3        =        0.(3)
1/4        =        0.25
1/5        =        0.2
1/6        =        0.1(6)
1/7        =        0.(142857)
1/8        =        0.125
1/9        =        0.(1)
1/10      =        0.1

其中 0.1(6) 表示 0.166666...,因此它又一个长度为 1 的循环圈。可以看出 1/7 拥有一个 6 位的循环圈。

找出小于 1000 的数字 d,1/d 的十进制表示含有最长的循环圈。


附加题:


以下是斐波那契数列的递归定义:


                               
登录/注册后可看大图


那么其 12 项为:


                               
登录/注册后可看大图


因此第 12 项,

                               
登录/注册后可看大图
,是第一个包含三位数字的项。

斐波那契数列中第一个包含 1000 位数字的项是第几项?


奖励:
对所有完成程序并得出正确答案的将给予加分奖励,优秀的将额外加分。
在完成一批题目后,将根据每期的完成情况总评评出最佳,会有神秘大奖。



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-3 21:08:40 | 显示全部楼层
我的答案:
  1. maxlen = 0
  2. for i in range(2, 1000):
  3.     if i <= 10:
  4.         num = 10
  5.     elif i <= 100:
  6.         num =100
  7.     else:
  8.         num = 1000
  9.     list1 = []
  10.     num1 = [1]
  11.     length = 0
  12.     while True:
  13.         list1.append(num // i)
  14.         num %= i
  15.         if num == 0:
  16.             break
  17.         if num in num1:
  18.             length = len(list1[num1.index(num):])
  19.             break
  20.         num1.append(num)
  21.         num *= 10
  22.     if length > maxlen:
  23.         maxlen = length
  24.         maxn = i
  25. print(maxn)
复制代码

  1. 983
复制代码

  1. def fab():
  2.     n1, n2 = 1, 1
  3.     while True:
  4.         n2, n1 = n1 + n2, n2
  5.         yield n2
  6. import time
  7. tt = time.time()
  8. i = 3
  9. for n in fab():
  10.     if len(str(n)) > 999:
  11.         break
  12.     i += 1
  13. print(i)
  14. print('%.2f s'%(time.time() - tt))
复制代码

  1. 4782
  2. 0.14 s
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-4 06:54:18 | 显示全部楼层
  1. def getloop(n):
  2.     up = [10]
  3.     result = [int(10/n)]
  4.     down = 10*(10%n)
  5.     while (down not in up) and (down > 0):
  6.         up.append(down)
  7.         result.append(int(down/n))
  8.         down = 10*(down%n)
  9.     if down > 0:
  10.         nLoop = result[up.index(down):]
  11.     else:
  12.         nLoop = []
  13.     return nLoop

  14. if  __name__ == '__main__':
  15.     result = []
  16.     Num = 1
  17.     for num in range(1,1000):
  18.         num_loop = getloop(num)
  19.         if len(num_loop) > len(result):
  20.             Num = num
  21.             result = num_loop
  22.     print('具有最长循环圈的数字为:' + str(Num))
  23.     from functools import reduce
  24.     print('循环圈为:'+ reduce(lambda x,y: str(x)+str(y), result))

  25. # 附加题
  26. def getIndex(n):
  27.     a = b = 1
  28.     c = a + b
  29.     k = 3
  30.     while (len(str(c))) < n:
  31.         a, b = b, c
  32.         c = a + b
  33.         k += 1
  34.     return k

  35. if  __name__ == '__main__':
  36.     n = 1000
  37.     print(getIndex(n))
复制代码

评分

参与人数 1荣誉 +8 鱼币 +8 收起 理由
冬雪雪冬 + 8 + 8 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-4 13:49:24 | 显示全部楼层
本帖最后由 Spicebush 于 2016-7-16 18:57 编辑
  1. #答案为983
  2. num_s = {1}
  3. for num in range(1, 1000):
  4.     while num%2 == 0:
  5.         num /= 2
  6.     while num%5 == 0:
  7.         num /= 5
  8.     num_s.add(num)

  9. number = 0
  10. length = 0
  11. for n in num_s:
  12.     t = 9
  13.     while t%n != 0:
  14.          t = 10*t+9
  15.     l = len(str(t))
  16.     if l > length:
  17.          length = l
  18.          number = n
  19.         
  20. print(number)
复制代码


附加题:
  1. #答案为4782
  2. known = {0:0, 1:1}
  3. def fib(n):
  4.     if n in known:
  5.         return known[n]
  6.     res = fib(n - 1) + fib(n - 2)
  7.     known[n] = res
  8.     return res
  9. #以上程序以前看过,这次正好拿来用

  10. n = 1
  11. while n > 0:
  12.     num = fib(n)
  13.     if len(str(num)) < 1000:
  14.         n += 1
  15.     else:
  16.         print(n)
  17.         n = 0
复制代码

评分

参与人数 1荣誉 +10 鱼币 +10 收起 理由
冬雪雪冬 + 10 + 10 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-4 16:37:51 | 显示全部楼层
看起来好流弊的样子,可惜不怎么会啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-4 20:50:16 | 显示全部楼层
  1. def circle(num):
  2.       n=10
  3.       while n<num:
  4.             n*=10
  5.       circle1=[]
  6.       while 1:
  7.             m=n%num
  8.             if m==0:
  9.                   return 0
  10.             elif m in circle1:
  11.                   return len(circle1)-circle1.index(m)
  12.             circle1.append(m)
  13.             n*=10
  14. from functools import reduce
  15. a=1
  16. b=1
  17. i=2
  18. while b<10**999:
  19.       b,a=a+b,b
  20.       i+=1
  21. print(reduce(lambda x,y:x if x[1]>y[1]else y,enumerate(map(circle,range(1,1001)),1))[0],i)
复制代码


评分

参与人数 1荣誉 +8 鱼币 +8 收起 理由
冬雪雪冬 + 8 + 8 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-5 01:43:47 | 显示全部楼层
本帖最后由 huomqh 于 2016-7-6 20:55 编辑
  1. import time
  2. tt=time.time()

  3. def l(x):
  4.     a=[]
  5.     numerator=1000
  6.     while 1:
  7.         remainder=numerator % x

  8.         if remainder==0:
  9.             return 0
  10.         elif remainder in a:
  11.             return len(a)-a.index(remainder)
  12.         else:
  13.             a.append(remainder)
  14.             
  15.             numerator = remainder *10
  16.             
  17.             while numerator<= x:
  18.                 a.append(0)
  19.                 numerator=numerator*10

  20. maxi=0
  21. maxl=0
  22. ll=0
  23. i=3
  24. while i<1000:
  25.     ll=l(i)
  26.     if maxl<ll:
  27.         maxl=ll
  28.         maxi=i
  29.     i+=2
  30. print ("d=%d,循环体长度=%d"%(maxi,maxl))

  31. print('用时:%.4f s'%(time.time() - tt))
复制代码

d=983,循环体长度=982
用时:0.3900 s


附加题:
  1. import time
  2. tt=time.time()
  3. import sys   
  4. sys.setrecursionlimit(1000000)

  5. def fbnq(x,y,i):
  6.     if x+y>=n:
  7.         print(i)
  8.     else:
  9.         fbnq(y,x+y,i+1)
  10. n=10**999
  11. fbnq(1,1,3)
  12. print('用时:%.4f s'%(time.time() - tt))
复制代码

4782
用时:0.0468 s

评分

参与人数 1荣誉 +8 鱼币 +8 收起 理由
冬雪雪冬 + 8 + 8 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-5 06:04:45 | 显示全部楼层
第一题: 983
  1. import time

  2. def primes_sieve(limit=100):
  3.     limitn,not_prime,primes = limit+1,set(),list()
  4.     for i in range(2, limitn):
  5.         if i in not_prime:
  6.             continue
  7.         for f in range(i*2, limitn, i):
  8.             not_prime.add(f)
  9.         primes.append(i)
  10.     return primes
  11.    
  12. t,maxi,prime_l = time.time(),(0,),primes_sieve(1000)[4:]
  13. for prime in prime_l:
  14.     summ,i = 9,1
  15.     while summ%prime != 0:
  16.         summ = summ*10+9
  17.         i += 1
  18.         
  19.     if i > maxi[0]:
  20.         maxi = i,prime
  21.         
  22. print(maxi[1],'time:',time.time()-t)
复制代码

第二题:4782
  1. import time
  2. a,b,i,t = 1,1,2,time.time()

  3. while len(str(a)) < 1000:
  4.     a,b,i = a+b,a,i+1

  5. print(i,'time:',time.time()-t)
复制代码

评分

参与人数 1荣誉 +10 鱼币 +10 收起 理由
冬雪雪冬 + 10 + 10 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-5 14:40:45 | 显示全部楼层
本帖最后由 老忘 于 2016-7-5 14:59 编辑

小练习:
  1. # -*- coding:Utf-8 -*-
  2. import time
  3. start= time.clock()

  4. def js(num):
  5.     b=1
  6.     list_temp=[]
  7.     list_rel=[]
  8.     while 1:
  9.         if (b*10)%num ==0:
  10.             list_temp.append([int((b*10)/num),0])
  11.             list_rel=[False,len(list_temp)]
  12.             break
  13.         elif ([int((b*10)/num),(b*10)%num] in list_temp):
  14.             list_rel=[True,len(list_temp)-list_temp.index([int((b*10)/num),(b*10)%num])]
  15.             break
  16.         else:
  17.             a=int((b*10)/num)
  18.             b=(b*10)%num
  19.             list_temp.append([a,b])
  20.     return list_rel

  21. list_len=[]
  22. for i in range(1,1000):
  23.     if js(i)[0]:
  24.         list_len.append([js(i)[1],i])
  25. print(max(list_len)[1])

  26. end = time.clock()
  27. print ("read: %f s" % (end - start))
复制代码

  1. 小练习计算结果:983
复制代码


附加题:
  1. int_count=3
  2. a,b=1,1
  3. while len(str(a+b))<1000:
  4.     int_count+=1
  5.     a,b=b,a+b
  6. print(int_count)
复制代码

  1. 附加题计算结果:4782
复制代码

评分

参与人数 1荣誉 +8 鱼币 +8 收起 理由
冬雪雪冬 + 8 + 8 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-6 23:19:41 | 显示全部楼层
本帖最后由 bacon6581 于 2016-7-7 15:19 编辑

为什么小数点精度取2003呢?
我先取的500,不够。。。
再取的1000,还是不够用。。。
取到2000,够用了。。。
  1. from time import time
  2. from decimal import *

  3. start=time()
  4. getcontext().prec=2003
  5. #

  6. len_max=0
  7. num=0

  8. for i in range(6,1000):
  9.     length=1
  10.     zhi_str=str(Decimal(1)/Decimal(i))
  11.     if len(zhi_str)<100:
  12.         continue
  13.    
  14.     zhi_str=zhi_str[:-3]
  15.    
  16.     while length<=999:
  17.         if zhi_str[len(zhi_str)-length:]==zhi_str[len(zhi_str)-length*2:len(zhi_str)-length]:
  18.             break
  19.         length+=1

  20.     if length>len_max:
  21.         len_max=length
  22.         num=i

  23. print('d is: ',num)
  24. print('len_max is: ',len_max)
  25. print('Used time is: ',time()-start)
复制代码
  

无标题.jpg

  1. from time import time
  2. start=time()

  3. lie={1:1,2:1}
  4. n=2
  5. while 1:
  6.     n+=1
  7.     lie[n]=lie[n-1]+lie[n-2]
  8.     if len(str(lie[n]))>=1000:
  9.         break
  10.         
  11. print(n)
  12. print(lie[n])
  13. print(time()-start)
复制代码

无标题.jpg
原先想用递归的,吃晚饭,睡了一觉,还没算完....
然后用字典
再用列表,还比字典慢一点点

评分

参与人数 1荣誉 +8 鱼币 +8 收起 理由
冬雪雪冬 + 8 + 8 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-7 12:07:06 | 显示全部楼层
import math
#首先计算1000内的的所有素数
def getn(n):
    for i in range(3,n+1,2):
        isn=True
        for j in range(3,int(math.sqrt(i)+1)):
            if i%j==0:
                isn=False
                break
        if isn:
            yield i
Max=0
Maxn=0
for i in getn(1000):
    length=0
    temp1=1
    temp2=[]
    for j in range(i):
        temp1=(temp1*10)%i#利用余数,求重复长度
        if temp1 not in temp2: #余数没有出现过就,加入list
            temp2.append(temp1)
        else:
            star=temp2.index(temp1)#定位循环开始处
            length=len(temp2)-star
            if length>Max:
                Max=length
                Maxn=i
print(Maxn,Max)

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
冬雪雪冬 + 5 + 5 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-7 16:21:54 | 显示全部楼层
最长循环的数字是983,长度为982
  1. import time
  2. start = time.time()
  3. num = 0
  4. fenshu = 0
  5. for d in range(2,1000):
  6.     c = []
  7.     b = 1*pow(10,len(str(d)))
  8.     a,b = divmod(b,d)
  9.     while b:
  10.         if b in c:
  11.             if len(c)-c.index(b) > num:
  12.                 num = len(c)-c.index(b)
  13.                 fenshu = d
  14.             break
  15.         if a:
  16.             c.append(b)
  17.             b *= 10
  18.         else:
  19.             c.append(None)
  20.             b *= 10
  21.             
  22.         a,b = divmod(b,d)
  23. yongshi = time.time()-start                    
  24. print("最长循环的数字是%d,长度为%d" % (fenshu,num))
  25. print("用时%f秒" % yongshi)         
复制代码


附加题
斐波那契数列中第一个包含1000位数字的项是第4782项
  1. import time
  2. start = time.time()
  3. a=1
  4. b=1
  5. num = 1

  6. while not (a // pow(10,999)):
  7.     c = b
  8.     b = a + b
  9.     a = c
  10.     num += 1
  11.    
  12. yongshi = time.time() - start
  13. print("斐波那契数列中第一个包含1000位数字的项是第%d项" % num)
  14. print("用时%f秒" % yongshi)
复制代码

评分

参与人数 1荣誉 +8 鱼币 +8 收起 理由
冬雪雪冬 + 8 + 8 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-7 16:44:50 | 显示全部楼层
#-*- coding:UTF-8 -*-

def fab(n):
    if n==1:
        return 1;
    if n==0:
        return 0;
    else:
        result = fab(n-1) + fab(n-2);
        return result;

for i in range(1000):
    a = fab(i);
    if a >= 1000 :
        print("第%s项是第一出现三围数的,数字为%s" % (i,a));
        break;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-8 00:47:59 | 显示全部楼层
  1. import time

  2. tt = time.time()

  3. def feb():
  4.     a = 0
  5.     b = 1
  6.     while True:
  7.         a,b = b,a+b
  8.         yield a

  9. lenght = 0
  10. feb_num = ""
  11. f = feb()
  12. count = 0
  13. while lenght < 1000:
  14.     feb_num = str(next(f))
  15.     lenght = len(feb_num)
  16.     count += 1

  17. print("共计用时:%.4f s"%(time.time()-tt))

  18. print(count)
复制代码

附加题,主题有点没看懂。那个循环节是怎么求出来的呢?
答案是4782

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-8 12:40:53 | 显示全部楼层
严重支持
  1. def cycleNum(n):
  2.     while n%2 == 0:
  3.         n = int(n/2)
  4.     while n%5 == 0:
  5.         n = int(n/5)

  6.     s = 1
  7.     while True:
  8.         if (10**s-1)%n == 0:
  9.             break
  10.         s += 1

  11.     return s

  12. maxr = 0
  13. for i in range(1, 1000):
  14.     r = cycleNum(i)
  15.     if r > maxr:
  16.         maxr = r
  17.         maxi = i
  18. print('1/%s 的十进制表示含有最长的循环圈,长度为 %s'%(maxi,maxr))

  19. ###############附加题################

  20. i = 0
  21. f1 = 0
  22. f2 = 1
  23. while True:
  24.     i += 1
  25.     if len(str(f2)) > 999:
  26.         break
  27.     f1, f2 = f2, f1+f2
  28. print('附加题:斐波那契数列中第一个包含 1000 位数字的项是第 %s 项' %i)
复制代码

运行结果:
  1. >>>
  2. 1/983 的十进制表示含有最长的循环圈,长度为 982
  3. 附加题:斐波那契数列中第一个包含 1000 位数字的项是第 4782 项
  4. >>>
复制代码

评分

参与人数 1荣誉 +8 鱼币 +8 收起 理由
冬雪雪冬 + 8 + 8 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-10 22:12:03 | 显示全部楼层
本帖最后由 mather 于 2016-7-10 22:22 编辑

第一题:
  1. import time
  2. on = time.time()

  3. dics = [0]*1000
  4. the_res = 1
  5. max_len = 0

  6. for i in range(1,1001):
  7.     #去掉2,5因数剩下的数和其值求得的循环数一致
  8.     while i % 2==0:
  9.         i = i//2
  10.     while i % 5==0:
  11.         i = i//5
  12.    
  13.     if dics[i]:
  14.         j = dics[i]
  15.     else:
  16.         j=1
  17.         while (10**j-1)%i != 0:
  18.             j+=1
  19.         dics[i]=j
  20.     if max_len < j:
  21.         max_len = j
  22.         the_res = i
  23.         
  24. print("1/%d循环数是:%d" % (the_res,max_len))

  25. print(time.time()-on)
复制代码

结果:1/983循环数是:982
用时:0.15621447563171387

附加题:
  1. import time
  2. on = time.time()


  3. data1 = 1
  4. data2 = 1
  5. data3 = data1 + data2
  6. index = 3
  7. while(len(str(data3))<1000):
  8.     data1 = data2
  9.     data2 = data3
  10.     data3 = data1+data2
  11.     index += 1
  12. print(index)

  13. print(time.time()-on)
复制代码

结果:4782
用时:0.06375360488891602

评分

参与人数 1荣誉 +8 鱼币 +8 收起 理由
冬雪雪冬 + 8 + 8 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-11 09:22:04 | 显示全部楼层
  1. import time
  2. def long(n):
  3.     while True:
  4.         m = n
  5.         if n % 2 == 0:
  6.             n = n // 2
  7.         if n % 5 == 0:
  8.             n = n // 5
  9.         if m == n:
  10.             break
  11.     i = 1
  12.     m = 9
  13.     while True:
  14.         if m % n == 0:
  15.             return i
  16.         m += 9 * 10 ** i
  17.         i += 1
  18.     return i

  19. t = time.time()
  20. r = [i for i in range(1,1001) if i % 2 and i % 5]
  21. print(max(r, key=long))
  22. print(time.time() - t)
复制代码

答案:983
附加题:
  1. import time
  2. t = time.time()
  3. a, b, i= 0, 1, 1
  4. while True:
  5.     if  1 < b / (10 ** (1000-1)) < 10:
  6.         print(i)
  7.         break
  8.     a, b = b, a + b
  9.     i += 1
  10. print(time.time() - t)
复制代码

附加题答案:4782

评分

参与人数 1荣誉 +8 鱼币 +8 收起 理由
冬雪雪冬 + 8 + 8 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-16 15:36:50 | 显示全部楼层

请问为什么可以把1/n转化成10*n+9呢。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-16 18:59:06 | 显示全部楼层
本帖最后由 Spicebush 于 2016-7-18 08:08 编辑
leozyre 发表于 2016-7-16 15:36
请问为什么可以把1/n转化成10*n+9呢。。


       对于大于1的整数d,将其表示为d=(2^p)*(5^q)*d',其中p、q均为非负整数,d'为不能被2或5整除的整数。
       若d'等于1,则1/d不为循环小数。当d'不等于1时,则从一个9开始,用一连串的9除以d',当恰好能整除时,9的个数即为1/d的循环圈长度。
       例如,当d=(2^p)*(5^q)*3时,9/3=3,所以此时1/d的循环圈长度为1;当d=(2^p)*(5^q)*7时,9/7=1……2,99/7=14……1,……,999999/7=142857,所以此时1/d的循环圈长度为6。

       PS:每次在答题之前我都会去查一查里面有没有什么数学小知识,然后再去编程。其实有些知识我们在小学或中学的时候都接触过,只不过现在都忘得差不多了。另外,通过回答你的问题我发现我的程序里有一个当初的错误想法,现已修改。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-16 19:13:22 | 显示全部楼层
Spicebush 发表于 2016-7-16 18:59
对于大于1的整数d,将其表示为d=(2^p)*(5^q)*d',其中p、q均为非负整数,d'为不能被2或5整除的整 ...

哦哦哦谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-16 23:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表