summaryrefslogtreecommitdiff
path: root/euler45.myr
diff options
context:
space:
mode:
Diffstat (limited to 'euler45.myr')
-rw-r--r--euler45.myr30
1 files changed, 30 insertions, 0 deletions
diff --git a/euler45.myr b/euler45.myr
new file mode 100644
index 0000000..3bf53fc
--- /dev/null
+++ b/euler45.myr
@@ -0,0 +1,30 @@
+use std
+
+const main = {
+ for var n: uint64 = 144; true; n++
+ var hn = n * (n * 2 - 1)
+ /* find pentagonal pn = n(3n-1)/2 */
+ /* n' < 2/sqrt(3)*n */
+ var i: uint64 = n * 148 / 128
+ var pn = i * (i * 3 - 1) / 2
+ while pn > hn
+ i--
+ pn = i * (i * 3 - 1) / 2
+ ;;
+ if (pn != hn)
+ continue
+ ;;
+ /* find triangle tn = n(n+1)/2, n'<2n */
+ i = n*2
+ var tn = i * (i + 1) / 2
+ while tn > hn
+ i--
+ tn = i * (i + 1) / 2
+ ;;
+ if (tn != hn)
+ continue
+ ;;
+ std.put("n = {}, h[n] = {}\n", n, hn)
+ break
+ ;;
+}