高手是怎么样练成的19

 da={1:0}
def solve(n):
 res=0
 #print ‘----‘
 for i in range(2,n+1):
  #print "n:%d,i:%d" % (n,i)
  if (n%i==0):
   #print "i:",i
   if da.has_key(n/i):
    res+=da[n/i]
    #print "i:%d,da[n/i]:%d,res:%d" % (i,da[n/i],res)
   else:
    da[n/i]=solve(n/i)
    res+=da[n/i]
    #print da
 da[n]=res+1
 return da[n]
a=int(raw_input("input:"))
re=solve(a)
print re
print da

源递归:
void solve(long n)  
{  
    if(n==1)  
        total++;  
    else  
    {  
        for(long i=2;i<=n;i++)  
            if(n%i==0)  
                solve(n/i);  
    }

优化后代码,利用f(n)=Ef(m)+1这个公式  备忘录来算

E表示求和         m为n的所有约数,例如n=12,m为6,4,3,2

时间: 2024-08-11 10:52:06

高手是怎么样练成的19的相关文章

高手是怎样练成的1

1.2.1  高手成长的六个阶段 程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界.即使是这样的高手,那也都是无知者的自封. 我认为,一个程序员的成长可分为如下六个阶段. Ø         第一阶段 此阶段主要是能熟练地使用某种语言.这就相当于练武中的套路和架式这些表面的东西. Ø         第二阶段 此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32的API

高手是怎样练成的(3)

因为计算机技术没有任何时候是突变的.它的今年和去年相差不会很大,但是回过头来看三年以前的情况,和现在的距离就很大.所以说,如果你每年都跟着技术进步的话,你的压力就很小,因为你时刻都能掌握最新的技术.但是,如果你落下来,别说十年,就是三年,你就赶不上了. 如果你一旦赶不上,就会觉得非常吃力:如果你赶不上,你就会迷失方向:如果你迷失了方向,你就觉得计算机没有味道,越做越没劲.当你还只是有个思路的时候,别人的产品都做出来了,因为你的水平跟别人相差太远,人家早就想到的问题,你现在才开始认识.水平越高,他

主程序员的练成──引言

虽然是引言,但也很重要. 程序员如何成长?这个话题百度有大约170万个相关结果,介绍了不少从菜鸟到老鸟的经验,但如何成长为主程序员(以下简称主程),网上的"帮助文档"不完善,也缺少实践指南.本系列文章主题就是说说主程如何练成.为什么用"练"这个字,因为主程的很多技能光知道怎么做远远不够,还需要在实践中不断"训练"才能运用好.只有不断训练才能从知到行,从"知道"成长为"做到". 团队在任命主程时,大多会挑选经

标准口语就是这样疯狂得练成地

口语是这样练成地: 1.看一部有兴趣的电影,(180分钟到三个小时不等) 2.到处宣传此影片主角的迷人程度,陶醉其中,向亲朋好友强烈推荐,精彩片段重温,引导大家一起看,自己从旁讲解,并乐此不疲.(视业绩而定) 3.疯狂搜索其剧本,(一个晚上或一个下午) 4.下载剧本,(宽带几分钟) 5.整理剧本,(三到五个小时) 6.打印剧本,(几分钟,打印店离你家较远之类情况不在考虑范围之内) 7.看剧本,大声朗读,好东西啊!(三十分钟左右,长了嗓子受不了,地点最好选在阳台,以免打扰同学或亲人工作休息) 8.

主程序员的练成:HTTP协议和二进制协议的对比

在上一篇<主程序员的练成:TCP.消息分包和协议设计>中谈了协议设计的一些话题,这里补充聊聊HTTP协议和二进制协议的对比. HTTP协议是一种文本协议,也是一种Name-Based协议,就从这两方面来说. 文本协议 vs 二进制协议 文本协议的特点: 便于人 易于阅读.理解.调试.构造 解析复杂.冗余多 需要考虑字符转义 二进制协议的特点: 便于机器 Name-Based vs Position-Based Name-Based协议的特点: 协议字段都用Name标识 协议字段与位置无关 协议

主程序员的练成:CGI和FastCGI

消息经过网络传输,到达了服务器端,最常见的服务器是Web服务器,做PHP的同学都知道FastCGI模式的PHP比普通PHP更高效,这篇就聊聊其中的原理. 古老但常见的CGI Web服务器能解析HTTP请求,返回静态资源(HTML页.图片等),但要输出动态内容,必须得PHP/C#/Ruby/Java/Python/C/C++这些外部程序来实现. 早期有个技术叫CGI(Common Gateway Interface,通用网关接口),是用于Web服务器和外部程序之间传输数据的一种标准.一个简单的CG

主程序员的练成:TCP、消息分包和协议设计

在<主程序员的练成:IP.DNS和CDN>中,一次网络请求经过DNS解析知道了目的IP,现在就要发出网络包,这里我们说一说TCP的相关话题. TCP是一种流式协议 讲网络编程的教科书一般都会对TCP的可靠传输,api用法做详细说明,但对于TCP是一种流式协议讲解的不多,但这背后隐藏着很重要的一个知识点.先做个名词定义方便交流,这里的"消息"是指应用层的一个完整的协议包. 流式协议的特点是什么?就像流水连续不断那样,消息之间没有边界.例如send了3条消息,分别是100字节.

[转]程序员高手是怎样炼成的?

估计很多的朋友在很小的时候就看过奥斯特洛夫斯基同学的<钢铁是怎样炼成的>,偶小时候在农村混,看的最多是各式各样的牛屎以及长得极象牛屎的山头,这些所谓的名著偶直到大学才有机会拜读,但说实话,偶是个俗人,还是更喜欢看一些痞子写的文字或带COLOR的BOOKS.偶之所以写这么个主题,主要是太多的朋友给偶发EMAIL或在VCHOME.NET提问,偶其实也与大家一样为生活而奔波,因此没有时间一一作答,在这作一次回答,还望海涵. 高手是一个哗众取宠的词汇,世上本来并没有高手,说的人多了也就有了高手,我看程

论Spark高手是怎样炼成的

SPARK J大数据的处理怎么能变快一点,答案是请用spark,因为它是基于内存的,可以有效减少数据的落地次数.Spark性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数据仓库.流处理和图计算等多种计算范式,是罕见的全能选手. Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理.图技术.机器学习.NoSQL查询等方面的所有核心问题,具有完善的生态系统,这直接奠定了其一统云计算大数据领域的霸主地位. 伴随Spark技术的普及推广,对专业人才的需求日益增加.Spark专业人才在未