Jump to content

Iccanobif primes: Difference between revisions

Created Nim solution.
(Created Nim solution.)
Line 563:
879871752812976577066489068488 ... 466056251048748727893681871587 (4270 digits)
818073763671137983636050093057 ... 882798314213687506007959668569 (10527 digits)
</pre>
 
=={{header|Nim}}==
{{libheader|Nim-Integers}}
<syntaxhighlight lang="Nim">import std/strformat
import integers
 
func reversed(n: Integer): Integer =
## Return the "reversed" value of "n".
result = newInteger()
var n = n
while n != 0:
result = 10 * result + n mod 10
n = n div 10
 
iterator fib(): Integer =
## Yield the successive values of Fibonacci sequence.
var prev, curr = newInteger(1)
yield prev
while true:
yield curr
swap curr, prev
curr += prev
 
func compressed(str: string; size: int): string =
## Return a compressed value for long strings of digits.
if str.len <= 2 * size: str
else: &"{str[0..<size]}...{str[^size..^1]}"
 
func digitCount(s: string): string =
## Return the string which describes the number of digits.
result = $s.len & " digit"
if s.len > 1: result.add 's'
 
echo "First 25 Iccanobif primes:"
var count = 0
for n in fib():
let r = reversed(n)
if r.isPrime:
inc count
let s = $r
echo &"{count:>2}: {s.compressed(20)} ({s.digitCount()})"
if count == 25: break
</syntaxhighlight>
 
{{out}}
<pre>First 25 Iccanobif primes:
1: 2 (1 digit)
2: 3 (1 digit)
3: 5 (1 digit)
4: 31 (2 digits)
5: 43 (2 digits)
6: 773 (3 digits)
7: 7951 (4 digits)
8: 64901 (5 digits)
9: 52057 (5 digits)
10: 393121 (6 digits)
11: 56577108676171 (14 digits)
12: 940647607443258103531 (21 digits)
13: 5237879497657222310489731409575442761 (37 digits)
14: 9026258083384996860449366072142307801963 (40 digits)
15: 19900335674812302969...34431012073266446403 (80 digits)
16: 77841137362967479985...52312097783685331923 (104 digits)
17: 37722585901567604188...29174997072830756131 (137 digits)
18: 75736193894876131595...50767238644714305761 (330 digits)
19: 17890336847332837620...13175300695235035913 (406 digits)
20: 92327163101729115305...27061468856047302507 (409 digits)
21: 50420157810698056253...67335124247362214481 (503 digits)
22: 30511012474739380092...69296158361330018201 (888 digits)
23: 46818547042693694555...08664543144645856321 (1020 digits)
24: 87101347853037819884...20128396998865227391 (1122 digits)
25: 17451656022543765336...20100243761843652461 (1911 digits)
</pre>
 
256

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.