求一个数的因子的数量。
X=a^n*b^m*c^p  will have (n + 1)(m + 1)(p + 1) factors.//abc都是质因子28=2^2*7  will have 3*2 = 6 factors   
因为: 
28的质因子是 2 2  7 ;
28的所有因子必是由这些质因子构成;
构造这些因子时:2可以取 0 、1、 2 个。7可以取0 、1 个;
所以28因子的数量是:3×2=6 。

http://mathforum.org/library/drmath/view/55843.html

http://www.cnblogs.com/zhouyinhui/archive/2011/02/16/1955691.html

 题目要求找到第一个因子数大于500的triangle number(简写tn) (第i的tn 就是 1+2+3+...+i)

 尴尬的是一开始审题不认真,以为要找到一个因子是等于500的,因为因子是不按一定的规律,比如找6个因子的数很快就是28,但是(随便说的数字)找7个因子的数可能结果是99999  虽然因子数差1但是实际数字跨越可能很大。

haskell实现:

使用了Data.Numbers.Primes库

module P12 where

import Data.Numbers.Primesimport Data.List

(|>) f g =(g)$(f)

zipSame' ::[Integer]->[[Integer]]->[[Integer]]zipSame' [] rs=rszipSame' (x:xs) rs'@((r:rs):rss) =if x == r then zipSame' xs ((x:r:rs):rss)  else zipSame' xs ([x]:rs')--zipSame 假设相同的元素是连续的。因为primes函数产生的素数是排好序的      zipSame :: [Integer]->[[Integer]]zipSame (x:xs) =zipSame' xs [[x]]zipSame []     = [[0]]

--mapCount目的是求出嵌套的list中子list的长度,以[数量]形式返回--e.g.[[2,2,2]] >> [3]         mapCount ::[[Integer]]->[Integer]--zipSame 假设相同的元素是连续的。因为primes函数产生的素数是排好序的mapCount xs =mapCount xs =    map (\ a -> toInteger $ length a)  xs

--计算给定数的因子的数量  factorsCount :: Integer ->IntegerfactorsCount x =  (mapCount $ zipSame $ primeFactors x)  |> foldl (\ sum x -> sum*(x+1) ) 1 

triangleNumbers::[Integer]triangleNumbers =let x =[1..] in  map (\ a ->truncate $ fromInteger ((1+a)*a) / fromInteger 2 ) x

tfc =          map (\ i-> (i,factorsCount i)) triangleNumbers

fstOverfc::[(Integer,Integer)]->(Integer,Integer)fstOverfc (x:[]) =xfstOverfc (x@(i,fc):xs)   | fc >=500 = x  | otherwise =fstOverfc xs

转载于:https://www.cnblogs.com/jiangzhen/archive/2012/01/31/2332529.html

[projectEuler.net]12相关推荐

  1. 系统启动没有声音,音量控制图标不能正常显示,但realplayer能正常播放

    最近碰到了一个问题,任务栏的音量显示图标突然不能正常显示(卸载程序造成),造成计算机启动.注销等 没有声音,swf文件播放不正常,为此很是苦恼了一下,在网上查了一些资料,都是一些陈词烂调,比如 1.到 ...

  2. [projecteuler]Counting Sundays

    题目:  http://projecteuler.net/problem=19 思路: 求每年的每个月的1号距离1990,1,1的天数 代码: #include <iostream>usi ...

  3. swig error : Unrecognized option -doxygen Ubuntu 安装 swig-3.0.12

    1. 下载 下载地址:https://sourceforge.net/projects/swig/ 2. 安装 tar -xzvf swig-3.0.12.tar.gzcd swig-3.0.12# ...

  4. 1-2 用Python编写【房价预测】模型----paddle

    课程>我的课程>百度架构师手把手教深度学习>1-2 用Python编写[房价预测]模型> 1-2 用Python编写[房价预测]模型 paddle初级教程第一章 第二节 王然( ...

  5. 【CV】吴恩达机器学习课程笔记 | 第1-2章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 1 介绍 1-3 监督学习 1-4 无监督学习 2 单变量 ...

  6. mysql效率优化_MySQL性能优化的最佳12条经验

    数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时 ...

  7. 网站项目必备——12款白富美型 jQuery 图片轮播插件

    转自:http://www.cnblogs.com/lhb25/archive/2013/01/06/jquery-image-carousel-effect.html 图片轮播是网站中的常用功能,用 ...

  8. 写代码:使用while循环实现输出1,2,3,4,5,7,8,9,11,12

    # 使用while循环实现输出1,2,3,4,5,7,8,9,11,12 number = 1while number <= 12:if number == 6 or number == 10: ...

  9. Oracle 12c(12.1.0.5) oem agent silent install(静默安装agent)

    注释: 文章来自oracle support 文档 ID 1360083.1,静默安装agent采用的是把OMS服务端(即oem server端)的agent用压缩包download,远程传到agen ...

最新文章

  1. AI算法领域常用的39个术语(下)
  2. AI 事件驱动场景 Serverless 实践
  3. 01.MyBatis入门
  4. 据说这是最受科研人员喜爱的春联
  5. SpringBoot2.0 基础案例(16):配置Actuator组件,实现系统监控
  6. 获取结构体某成员偏移
  7. WOW工会DKP管理系统
  8. 锅炉的计算机控制系统设计,余热锅炉计算机控制系统设计与开发
  9. 基于linux下的在线电子词典
  10. 《商务与经济统计》练习:案例2-1:Pelican商店促销活动效果评估
  11. 缺陷管理工具JIRA和禅道对比
  12. C++ Primer 5th - 1.1 编写一个简单的C++程序
  13. 单车架的ANSYS有限元分析
  14. java dead store_jcip Java并发编程实战源码,这本书名为《 践》有些抹杀了它的价值,其中 Develop 238万源代码下载- www.pudn.com...
  15. Java-底层建筑-JVM-第3篇-StringTable
  16. 快速修复 bug 的技巧?初学者的痛点,教你一招搞定!
  17. SMD电容极性的区分
  18. 交叉编译OpenCV3.4.1报错
  19. 平安科技联络云荣膺金融科技最佳云联络中心服务商
  20. 师范类专业计算机和数学哪个好,师范类数学与应用数学专业考研考哪个方向好?是本专......

热门文章

  1. getAffineTransform函数
  2. 【Kaggle-MNIST之路】CNN结构改进+改进过的损失函数(五)
  3. opencv-Canny边缘检测(Python)
  4. 3行代码实现从excel中读取出某列元素为所想要的元素集合中的所有行
  5. 使用OpenVINO遇到No name 'IENetwork' in module 'openvino.inference_engine'解决
  6. java 处理 url_Java URL处理 - Java 教程 - 自强学堂
  7. 15.Three Sum
  8. protected private public 的区别
  9. Android基于mAppWidget实现手绘地图(五)--如何创建地图资源
  10. JSP页面退出时清除会话Session