Left factorials: Difference between revisions
Content added Content deleted
(Promote to full task from draft.) |
(Go solution) |
||
Line 56: | Line 56: | ||
Digits in 1,000 through 10,000 by thousands: |
Digits in 1,000 through 10,000 by thousands: |
||
[2565, 5733, 9128, 12670, 16322, 20062, 23875, 27749, 31678, 35656]</pre> |
[2565, 5733, 9128, 12670, 16322, 20062, 23875, 27749, 31678, 35656]</pre> |
||
=={{header|Go}}== |
|||
<lang go>package main |
|||
import ( |
|||
"fmt" |
|||
"math/big" |
|||
) |
|||
func main() { |
|||
fmt.Print("!0 through !10: 0") |
|||
one := big.NewInt(1) |
|||
n := big.NewInt(1) |
|||
f := big.NewInt(1) |
|||
l := big.NewInt(1) |
|||
next := func() { f.Mul(f, n); l.Add(l, f); n.Add(n, one) } |
|||
for ; ; next() { |
|||
fmt.Print(" ", l) |
|||
if n.Int64() == 10 { |
|||
break |
|||
} |
|||
} |
|||
fmt.Println() |
|||
for { |
|||
for i := 0; i < 10; i++ { |
|||
next() |
|||
} |
|||
fmt.Printf("!%d: %d\n", n, l) |
|||
if n.Int64() == 110 { |
|||
break |
|||
} |
|||
} |
|||
fmt.Println("Lengths of !1000 through !10000 by thousands:") |
|||
for i := 110; i < 1000; i++ { |
|||
next() |
|||
} |
|||
for { |
|||
fmt.Print(" ", len(l.String())) |
|||
if n.Int64() == 10000 { |
|||
break |
|||
} |
|||
for i := 0; i < 1000; i++ { |
|||
next() |
|||
} |
|||
} |
|||
fmt.Println() |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
!0 through !10: 0 1 2 4 10 34 154 874 5914 46234 409114 |
|||
!20: 128425485935180314 |
|||
!30: 9157958657951075573395300940314 |
|||
!40: 20935051082417771847631371547939998232420940314 |
|||
!50: 620960027832821612639424806694551108812720525606160920420940314 |
|||
!60: 141074930726669571000530822087000522211656242116439949000980378746128920420940314 |
|||
!70: 173639511802987526699717162409282876065556519849603157850853034644815111221599509216528920420940314 |
|||
!80: 906089587987695346534516804650290637694024830011956365184327674619752094289696314882008531991840922336528920420940314 |
|||
!90: 16695570072624210767034167688394623360733515163575864136345910335924039962404869510225723072235842668787507993136908442336528920420940314 |
|||
!100: 942786239765826579160595268206839381354754349601050974345395410407078230249590414458830117442618180732911203520208889371641659121356556442336528920420940314 |
|||
!110: 145722981061585297004706728001906071948635199234860720988658042536179281328615541936083296163475394237524337422204397431927131629058103519228197429698252556442336528920420940314 |
|||
Lengths of !1000 through !10000 by thousands: |
|||
2565 5733 9128 12670 16322 20062 23875 27749 31678 35656 |
|||
</pre> |
|||
=={{header|Haskell}}== |
=={{header|Haskell}}== |