用clojure解决euler problem 12
来源:互联网 发布:淘宝店铺名称 编辑:程序博客网 时间:2024/06/05 18:18
问题描述:
The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
Let us list the factors of the first seven triangle numbers:
1: 1
3: 1,3
6: 1,2,3,6
10: 1,2,5,10
15: 1,3,5,15
21: 1,3,7,21
28: 1,2,4,7,14,28
We can see that 28 is the first triangle number to have over five divisors.
What is the value of the first triangle number to have over five hundred divisors?
解决方案:(ns euler-problem-12.core (:use [clojure.contrib.math]))(defn prime? [num] (every? #(or (> (rem num %) 0) (= num %)) (apply list (range 2 (inc (ceil (sqrt num)))))))(defn next-prime [num] (loop [x (inc num)] (if (prime? x) x (recur (inc x)))))(defn prime-factors [n] (loop [curent-n n, p 2, c [ ]] (if (prime? curent-n) (conj c curent-n) (if (= 0 (rem curent-n p)) (recur (/ curent-n p) p (conj c p)) (recur curent-n (next-prime p) c)))))(defn factors-count [vprime-factors] (loop [last-factor nil, factors vprime-factors, counts [1], c-count 2] (if (empty? factors) (apply * counts) (if (= last-factor (first factors)) (recur last-factor (rest factors) counts (inc c-count)) (recur (first factors) (rest factors) (conj counts c-count) 2)))))(defn first-triangle-number-500-factors [] (loop [n 2, t-n 1] (if (> (factors-count (prime-factors (+ t-n n))) 500) (+ t-n n) (recur (inc n) (+ t-n n)))))(first-triangle-number-500-factors)答案:76576500
- 用clojure解决euler problem 12
- 用clojure解决 euler problem 1
- 用clojure解决 euler problem 2
- 用clojure解决euler problem 3
- 用clojure解决 euler problem 4
- 用clojure解决euler problem 5
- 用clojure解决 euler problem 6
- 用clojure解决euler problem 7
- 用clojure解决euler problem 8
- 用clojure解决euler problem 9
- 用clojure解决euler problem 10
- 用clojure解决 euler problem 11
- Project Euler problem 12
- project euler problem 12
- Project Euler – Problem 12
- Problem Euler
- 4clojure problem 132
- Euler Project Problem 6
- 如何设置ppt,使讲演者看到备注,而观众看不到
- struts1文件下载
- Arithmetic Progressions
- 管道流 PipedInpuStream 、PipedOutputStream
- 说说为什么使用Java框架的道理
- 用clojure解决euler problem 12
- Extjs学习 Ext.Panel
- 匈牙利命名法
- [signed][input]Verilog的有符号数输入测试
- HDU 1043 八数码问题 A*搜索
- 关于自定义标签 ---MVC_Pro
- 最低公共祖先问题
- 给定a和n,计算a+aa+aaa+a...a(n个a)的和(大数据处理)
- 关于AbstractDispatchCommand 与MappingDispatchCommand实现