[projectEuler.net]12
求一个数的因子的数量。
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相关推荐
- 系统启动没有声音,音量控制图标不能正常显示,但realplayer能正常播放
最近碰到了一个问题,任务栏的音量显示图标突然不能正常显示(卸载程序造成),造成计算机启动.注销等 没有声音,swf文件播放不正常,为此很是苦恼了一下,在网上查了一些资料,都是一些陈词烂调,比如 1.到 ...
- [projecteuler]Counting Sundays
题目: http://projecteuler.net/problem=19 思路: 求每年的每个月的1号距离1990,1,1的天数 代码: #include <iostream>usi ...
- 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# ...
- 1-2 用Python编写【房价预测】模型----paddle
课程>我的课程>百度架构师手把手教深度学习>1-2 用Python编写[房价预测]模型> 1-2 用Python编写[房价预测]模型 paddle初级教程第一章 第二节 王然( ...
- 【CV】吴恩达机器学习课程笔记 | 第1-2章
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 1 介绍 1-3 监督学习 1-4 无监督学习 2 单变量 ...
- mysql效率优化_MySQL性能优化的最佳12条经验
数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时 ...
- 网站项目必备——12款白富美型 jQuery 图片轮播插件
转自:http://www.cnblogs.com/lhb25/archive/2013/01/06/jquery-image-carousel-effect.html 图片轮播是网站中的常用功能,用 ...
- 写代码:使用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: ...
- Oracle 12c(12.1.0.5) oem agent silent install(静默安装agent)
注释: 文章来自oracle support 文档 ID 1360083.1,静默安装agent采用的是把OMS服务端(即oem server端)的agent用压缩包download,远程传到agen ...
最新文章
- AI算法领域常用的39个术语(下)
- AI 事件驱动场景 Serverless 实践
- 01.MyBatis入门
- 据说这是最受科研人员喜爱的春联
- SpringBoot2.0 基础案例(16):配置Actuator组件,实现系统监控
- 获取结构体某成员偏移
- WOW工会DKP管理系统
- 锅炉的计算机控制系统设计,余热锅炉计算机控制系统设计与开发
- 基于linux下的在线电子词典
- 《商务与经济统计》练习:案例2-1:Pelican商店促销活动效果评估
- 缺陷管理工具JIRA和禅道对比
- C++ Primer 5th - 1.1 编写一个简单的C++程序
- 单车架的ANSYS有限元分析
- java dead store_jcip Java并发编程实战源码,这本书名为《 践》有些抹杀了它的价值,其中 Develop 238万源代码下载- www.pudn.com...
- Java-底层建筑-JVM-第3篇-StringTable
- 快速修复 bug 的技巧?初学者的痛点,教你一招搞定!
- SMD电容极性的区分
- 交叉编译OpenCV3.4.1报错
- 平安科技联络云荣膺金融科技最佳云联络中心服务商
- 师范类专业计算机和数学哪个好,师范类数学与应用数学专业考研考哪个方向好?是本专......
热门文章
- getAffineTransform函数
- 【Kaggle-MNIST之路】CNN结构改进+改进过的损失函数(五)
- opencv-Canny边缘检测(Python)
- 3行代码实现从excel中读取出某列元素为所想要的元素集合中的所有行
- 使用OpenVINO遇到No name 'IENetwork' in module 'openvino.inference_engine'解决
- java 处理 url_Java URL处理 - Java 教程 - 自强学堂
- 15.Three Sum
- protected private public 的区别
- Android基于mAppWidget实现手绘地图(五)--如何创建地图资源
- JSP页面退出时清除会话Session