Factorial primes: Difference between revisions
Content added Content deleted
m (→{{header|Julia}}: formatting) |
|||
Line 229: | Line 229: | ||
9: 12! - 1 = 479001599 |
9: 12! - 1 = 479001599 |
||
10: 14! - 1 = 87178291199 |
10: 14! - 1 = 87178291199 |
||
</pre> |
|||
=={{header|Phix}}== |
|||
<!--<lang Phix>(phixonline)--> |
|||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span> |
|||
<span style="color: #008080;">include</span> <span style="color: #004080;">mpfr</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span> |
|||
<span style="color: #004080;">atom</span> <span style="color: #000000;">tp</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">time</span><span style="color: #0000FF;">(),</span> <span style="color: #000000;">t5</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">time</span><span style="color: #0000FF;">()+</span><span style="color: #000000;">5</span> <span style="color: #000080;font-style:italic;">-- per, max 5s runtime</span> |
|||
<span style="color: #004080;">mpz</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">e</span><span style="color: #0000FF;">,</span><span style="color: #000000;">f</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">mpz_inits</span><span style="color: #0000FF;">(</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #004080;">integer</span> <span style="color: #000000;">i</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">c</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span> |
|||
<span style="color: #008080;">while</span> <span style="color: #7060A8;">time</span><span style="color: #0000FF;">()<</span><span style="color: #000000;">t5</span> <span style="color: #008080;">do</span> |
|||
<span style="color: #7060A8;">mpz_mul_si</span><span style="color: #0000FF;">(</span><span style="color: #000000;">f</span><span style="color: #0000FF;">,</span><span style="color: #000000;">f</span><span style="color: #0000FF;">,</span><span style="color: #000000;">i</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">for</span> <span style="color: #000000;">k</span> <span style="color: #008080;">in</span> <span style="color: #0000FF;">{-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">}</span> <span style="color: #008080;">do</span> |
|||
<span style="color: #7060A8;">mpz_add_si</span><span style="color: #0000FF;">(</span><span style="color: #000000;">e</span><span style="color: #0000FF;">,</span><span style="color: #000000;">f</span><span style="color: #0000FF;">,</span><span style="color: #000000;">k</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #7060A8;">mpz_prime</span><span style="color: #0000FF;">(</span><span style="color: #000000;">e</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000000;">c</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span> |
|||
<span style="color: #004080;">string</span> <span style="color: #000000;">t</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">elapsed</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">time</span><span style="color: #0000FF;">()-</span><span style="color: #000000;">tp</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0.1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" (%s)"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%2d: %d!%+d = %s%s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">c</span><span style="color: #0000FF;">,</span><span style="color: #000000;">i</span><span style="color: #0000FF;">,</span><span style="color: #000000;">k</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">mpz_get_short_str</span><span style="color: #0000FF;">(</span><span style="color: #000000;">e</span><span style="color: #0000FF;">),</span><span style="color: #000000;">t</span><span style="color: #0000FF;">})</span> |
|||
<span style="color: #000000;">tp</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">time</span><span style="color: #0000FF;">()</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span> |
|||
<span style="color: #000000;">i</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span> |
|||
<!--</lang>--> |
|||
{{out}} |
|||
<pre> |
|||
1: 1!+1 = 2 |
|||
2: 2!+1 = 3 |
|||
3: 3!-1 = 5 |
|||
4: 3!+1 = 7 |
|||
5: 4!-1 = 23 |
|||
6: 6!-1 = 719 |
|||
7: 7!-1 = 5039 |
|||
8: 11!+1 = 39916801 |
|||
9: 12!-1 = 479001599 |
|||
10: 14!-1 = 87178291199 |
|||
11: 27!+1 = 10888869450418352160768000001 |
|||
12: 30!-1 = 265252859812191058636308479999999 |
|||
13: 32!-1 = 263130836933693530167218012159999999 |
|||
14: 33!-1 = 8683317618811886495518194401279999999 |
|||
15: 37!+1 = 13763753091226345046315979581580902400000001 |
|||
16: 38!-1 = 523022617466601111760007224100074291199999999 |
|||
17: 41!+1 = 33452526613163807108170062053440751665152000000001 |
|||
18: 73!+1 = 44701154615126843408...03680000000000000001 (106 digits) |
|||
19: 77!+1 = 14518309202828586963...48000000000000000001 (114 digits) |
|||
20: 94!-1 = 10873661566567430802...99999999999999999999 (147 digits) |
|||
21: 116!+1 = 33931086844518982011...00000000000000000001 (191 digits) |
|||
22: 154!+1 = 30897696138473508879...00000000000000000001 (272 digits) |
|||
23: 166!-1 = 90036917057784373664...99999999999999999999 (298 digits) |
|||
24: 320!+1 = 21161033472192524829...00000000000000000001 (665 digits) (2.4s) |
|||
25: 324!-1 = 22889974601791023211...99999999999999999999 (675 digits) (0.2s) |
|||
26: 340!+1 = 51008644721037110809...00000000000000000001 (715 digits) (0.8s) |
|||
</pre> |
</pre> |
||