Iccanobif primes: Difference between revisions

From Rosetta Code
Content added Content deleted
m (→‎{{header|Raku}}: doh. display number in correct orientation)
(Added Wren)
Line 49: Line 49:
26: 48989340566288399474..02930339234215909399 (digits: 1947)
26: 48989340566288399474..02930339234215909399 (digits: 1947)
27: 12746927684958209654..53436989647994940101 (digits: 2283)
27: 12746927684958209654..53436989647994940101 (digits: 2283)
</pre>

=={{header|Wren}}==
{{libheader|Wren-gmp}}
{{libheader|Wren-fmt}}
<syntaxhighlight lang="ecmascript">import "./gmp" for Mpz
import "./fmt" for Fmt

var fib = Mpz.new()
var p = Mpz.new()
var prev = Mpz.zero
var curr = Mpz.one
var count = 0
System.print("First 25 Iccanobif primes:")
while (count < 25) {
fib.add(curr, prev)
var fs = fib.toString
p.setStr(fs[-1..0])
if (p.probPrime(15) > 0) {
count = count + 1
Fmt.write("$2d: $20a ", count, fib)
var fc = fs.count
if (fc > 40) {
Fmt.print("($d digits)", fc)
} else {
System.print()
}
}
prev.set(curr)
curr.set(fib)
}</syntaxhighlight>

{{out}}
<pre>
First 25 Iccanobif primes:
1: 2
2: 3
3: 5
4: 13
5: 34
6: 377
7: 1597
8: 10946
9: 75025
10: 121393
11: 17167680177565
12: 135301852344706746049
13: 1672445759041379840132227567949787325
14: 3691087032412706639440686994833808526209
15: 30464466237021013443...96920321847653300991 (80 digits)
16: 32913358638779021325...58997476926373114877 (104 digits)
17: 13165703827079947192...88140676510958522773 (137 digits)
18: 16750341744683276705...59513167849839163757 (330 digits)
19: 31953053259600357131...02673823374863309871 (406 digits)
20: 70520374065886416072...50351192710136172329 (409 digits)
21: 18441226374242153376...35265089601875102405 (503 digits)
22: 10281003316385169296...29008393747421011503 (888 digits)
23: 12365854644134546680...55549639624074581864 (1020 digits)
24: 19372256889969382102...48891873035874310178 (1122 digits)
25: 16425634816734200102...63356734522065615471 (1911 digits)
</pre>
</pre>

Revision as of 11:46, 28 April 2023

Iccanobif primes is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

Iccanobif primes are prime numbers that, when reversed, are a Fibonacci number.


Task
  • Find and display the first 10 iccanobif primes.


Stretch
  • Find and display the digit count of the next 15 iccanobif primes.


See also


Raku

sub abbr ($_) { (.chars < 41 ?? $_ !! .substr(0,20) ~ '..' ~ .substr(*-20)) ~ " (digits: {.chars})" }

say (++$).fmt('%2d') ~ ': ' ~ .flip.&abbr for (lazy (1,1,*+*…*).hyper.grep: {.flip.is-prime})[^25];
Output:
 1: 2 (digits: 1)
 2: 3 (digits: 1)
 3: 5 (digits: 1)
 4: 31 (digits: 2)
 5: 43 (digits: 2)
 6: 773 (digits: 3)
 7: 7951 (digits: 4)
 8: 64901 (digits: 5)
 9: 52057 (digits: 5)
10: 393121 (digits: 6)
11: 56577108676171 (digits: 14)
12: 940647607443258103531 (digits: 21)
13: 5237879497657222310489731409575442761 (digits: 37)
14: 9026258083384996860449366072142307801963 (digits: 40)
15: 19900335674812302969..34431012073266446403 (digits: 80)
16: 77841137362967479985..52312097783685331923 (digits: 104)
17: 37722585901567604188..29174997072830756131 (digits: 137)
18: 75736193894876131595..50767238644714305761 (digits: 330)
19: 17890336847332837620..13175300695235035913 (digits: 406)
20: 92327163101729115305..27061468856047302507 (digits: 409)
21: 50420157810698056253..67335124247362214481 (digits: 503)
22: 30511012474739380092..69296158361330018201 (digits: 888)
23: 46818547042693694555..08664543144645856321 (digits: 1020)
24: 87101347853037819884..20128396998865227391 (digits: 1122)
25: 17451656022543765336..20100243761843652461 (digits: 1911)
26: 48989340566288399474..02930339234215909399 (digits: 1947)
27: 12746927684958209654..53436989647994940101 (digits: 2283)

Wren

Library: Wren-gmp
Library: Wren-fmt
import "./gmp" for Mpz
import "./fmt" for Fmt

var fib = Mpz.new()
var p = Mpz.new()
var prev = Mpz.zero
var curr = Mpz.one
var count = 0
System.print("First 25 Iccanobif primes:")
while (count < 25) {
    fib.add(curr, prev)
    var fs = fib.toString
    p.setStr(fs[-1..0])
    if (p.probPrime(15) > 0) {
        count =  count + 1
        Fmt.write("$2d: $20a ", count, fib)
        var fc = fs.count
        if (fc > 40) {
            Fmt.print("($d digits)", fc)
        } else {
            System.print()
        }
    }
    prev.set(curr)
    curr.set(fib)
}
Output:
First 25 Iccanobif primes:
 1: 2 
 2: 3 
 3: 5 
 4: 13 
 5: 34 
 6: 377 
 7: 1597 
 8: 10946 
 9: 75025 
10: 121393 
11: 17167680177565 
12: 135301852344706746049 
13: 1672445759041379840132227567949787325 
14: 3691087032412706639440686994833808526209 
15: 30464466237021013443...96920321847653300991 (80 digits)
16: 32913358638779021325...58997476926373114877 (104 digits)
17: 13165703827079947192...88140676510958522773 (137 digits)
18: 16750341744683276705...59513167849839163757 (330 digits)
19: 31953053259600357131...02673823374863309871 (406 digits)
20: 70520374065886416072...50351192710136172329 (409 digits)
21: 18441226374242153376...35265089601875102405 (503 digits)
22: 10281003316385169296...29008393747421011503 (888 digits)
23: 12365854644134546680...55549639624074581864 (1020 digits)
24: 19372256889969382102...48891873035874310178 (1122 digits)
25: 16425634816734200102...63356734522065615471 (1911 digits)