鱼C论坛

 找回密码
 立即注册
查看: 5342|回复: 12

[技术交流] 小练习:20160503 第一个拥有超过500个约数的三角形数是多少?

[复制链接]
发表于 2016-5-6 17:08:23 | 显示全部楼层
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Fri May  6 09:34:52 2016

  4. @author:
  5. """
  6. #定义一个计算约数个数的函数
  7. def count_divisor(n):
  8.     t = int(n/2)
  9.     divisor_n=2
  10.     while t>1:
  11.         if n%t == 0:
  12.             t = t-1
  13.             divisor_n = divisor_n+1
  14.             #print(t,divisor_n)
  15.         else:
  16.             t = t-1
  17.             #print(t)
  18.     return(divisor_n)

  19. #定义一个产生三角形数的函数
  20. def delta(n):
  21.     sumn = 0
  22.     i=1   
  23.     while i<n:
  24.         sumn = sumn+i
  25.         i = i+1
  26.     return(sumn)
  27. #初始化,y是判断约数个数是否大于500的一个开关,C是三角形数的层数
  28. y=1
  29. c=1
  30. #从第一层三角形数开始,当约数个数是500时,则结束,打印;不是的时候层数加1

  31. while y>0:
  32.    number = delta(c)
  33.    divisor = count_divisor(number)
  34.    if divisor==500:
  35.        y=0
  36.        print("这个数是:%i"%number)
  37.        print("约数个数:%i"%divisor)
  38.    else:
  39.        c = c+1
  40.        print(c,number,divisor)
复制代码

这是笨办法

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-8 04:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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