Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,41 +0,0 @@
|
|||
with Ada.Text_IO;
|
||||
|
||||
procedure Wieferich_Primes is
|
||||
|
||||
function Is_Prime (V : Positive) return Boolean is
|
||||
D : Positive := 5;
|
||||
begin
|
||||
if V < 2 then return False; end if;
|
||||
if V mod 2 = 0 then return V = 2; end if;
|
||||
if V mod 3 = 0 then return V = 3; end if;
|
||||
while D * D <= V loop
|
||||
if V mod D = 0 then
|
||||
return False;
|
||||
end if;
|
||||
D := D + 2;
|
||||
end loop;
|
||||
return True;
|
||||
end Is_Prime;
|
||||
|
||||
function Is_Wieferich (N : Positive) return Boolean is
|
||||
Q : Natural := 1;
|
||||
begin
|
||||
if not Is_Prime (N) then
|
||||
return False;
|
||||
end if;
|
||||
for P in 2 .. N loop
|
||||
Q := (2 * Q) mod N**2;
|
||||
end loop;
|
||||
return Q = 1;
|
||||
end Is_Wieferich;
|
||||
|
||||
begin
|
||||
|
||||
Ada.Text_IO.Put_Line ("Wieferich primes below 5000:");
|
||||
for N in 1 .. 4999 loop
|
||||
if Is_Wieferich (N) then
|
||||
Ada.Text_IO.Put_Line (N'Image);
|
||||
end if;
|
||||
end loop;
|
||||
|
||||
end Wieferich_Primes;
|
||||
|
|
@ -1,11 +1,9 @@
|
|||
(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: #008080;">function</span> <span style="color: #000000;">weiferich</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">p</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #004080;">mpz</span> <span style="color: #000000;">p2pm1m1</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">mpz_init</span><span style="color: #0000FF;">()</span>
|
||||
<span style="color: #7060A8;">mpz_ui_pow_ui</span><span style="color: #0000FF;">(</span><span style="color: #000000;">p2pm1m1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">p</span><span style="color: #0000FF;">-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #7060A8;">mpz_sub_ui</span><span style="color: #0000FF;">(</span><span style="color: #000000;">p2pm1m1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">p2pm1m1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #7060A8;">mpz_fdiv_q_ui</span><span style="color: #0000FF;">(</span><span style="color: #000000;">p2pm1m1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">p2pm1m1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">p</span><span style="color: #0000FF;">*</span><span style="color: #000000;">p</span><span style="color: #0000FF;">)=</span><span style="color: #000000;">0</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</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;">"Weiferich primes less than 5000: %V\n"</span><span style="color: #0000FF;">,{</span><span style="color: #7060A8;">filter</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">get_primes_le</span><span style="color: #0000FF;">(</span><span style="color: #000000;">5000</span><span style="color: #0000FF;">),</span><span style="color: #000000;">weiferich</span><span style="color: #0000FF;">)})</span>
|
||||
<!--
|
||||
with javascript_semantics
|
||||
include mpfr.e
|
||||
function weiferich(integer p)
|
||||
mpz p2pm1m1 = mpz_init()
|
||||
mpz_ui_pow_ui(p2pm1m1,2,p-1)
|
||||
mpz_sub_ui(p2pm1m1,p2pm1m1,1)
|
||||
return mpz_fdiv_q_ui(p2pm1m1,p2pm1m1,p*p)=0
|
||||
end function
|
||||
printf(1,"Weiferich primes less than 5000: %V\n",{filter(get_primes_le(5000),weiferich)})
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
(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;">mpz</span> <span style="color: #000000;">base</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">mpz_init</span><span style="color: #0000FF;">(</span><span style="color: #000000;">2</span><span style="color: #0000FF;">),</span>
|
||||
<span style="color: #0000FF;">{</span><span style="color: #000000;">modulus</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">z</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: #008080;">function</span> <span style="color: #000000;">weiferich</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">p</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #7060A8;">mpz_set_si</span><span style="color: #0000FF;">(</span><span style="color: #000000;">modulus</span><span style="color: #0000FF;">,</span><span style="color: #000000;">p</span><span style="color: #0000FF;">*</span><span style="color: #000000;">p</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #7060A8;">mpz_powm_ui</span><span style="color: #0000FF;">(</span><span style="color: #000000;">z</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">base</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">p</span><span style="color: #0000FF;">-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">modulus</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #7060A8;">mpz_cmp_si</span><span style="color: #0000FF;">(</span><span style="color: #000000;">z</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)=</span><span style="color: #000000;">0</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</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;">"Weiferich primes less than 5000: %V\n"</span><span style="color: #0000FF;">,{</span><span style="color: #7060A8;">filter</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">get_primes_le</span><span style="color: #0000FF;">(</span><span style="color: #000000;">5000</span><span style="color: #0000FF;">),</span><span style="color: #000000;">weiferich</span><span style="color: #0000FF;">)})</span>
|
||||
<!--
|
||||
with javascript_semantics
|
||||
include mpfr.e
|
||||
mpz base = mpz_init(2),
|
||||
{modulus, z} = mpz_inits(2)
|
||||
function weiferich(integer p)
|
||||
mpz_set_si(modulus,p*p)
|
||||
mpz_powm_ui(z, base, p-1, modulus)
|
||||
return mpz_cmp_si(z,1)=0
|
||||
end function
|
||||
printf(1,"Weiferich primes less than 5000: %V\n",{filter(get_primes_le(5000),weiferich)})
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
-- 25 Apr 2025
|
||||
include Settings
|
||||
-- 24 Aug 2025
|
||||
include Setting
|
||||
numeric digits 2000
|
||||
|
||||
say 'WIEFERICH PRIMES'
|
||||
|
|
@ -33,8 +33,4 @@ say n 'found'
|
|||
say
|
||||
return
|
||||
|
||||
include Sequences
|
||||
include Helper
|
||||
include Functions
|
||||
include Constants
|
||||
include Abend
|
||||
include Math
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue