IdentifySmithNumbers

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

Link:

https://www.hackerrank.com/challenges/identify-smith-numbers

1defsum_digits(n):2returnsum(int(x)forxinstr(n))34defPRime_factors(n):5factors =[]6foriinxrange(2, n):7ifi*i >n:8

break9elifn % i == 0:#短除法核心10whilen % i ==0:11factors.append(i)12n /=i13ifn > 1:14factors.append(n)15returnfactors1617n =int(raw_input())1819factors =prime_factors(n)20print'1'iflen(factors) > 1andsum_digits(n) == sum(sum_digits(x)forxinfactors)else'0'

本题

“数论” -- “质因子分解”

学习到

如何理解(读)代码

哪里是代码的核心,哪里是代码的边缘可变的、灵活的

比如 n % i == 0 这里就是“短除法”的判断核心

而if i * i > n, 这种就是减少判断次数的外围

if和while层叠的顺序也是灵活可变的

算法整体

get了《算法导论》

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航