Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,51 @@
|
|||
with Ada.Text_IO; use Ada.Text_IO;
|
||||
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
|
||||
with Ada.Text_IO.Editing; use Ada.Text_IO.Editing;
|
||||
with Ada.Numerics.Generic_Elementary_Functions;
|
||||
|
||||
procedure Main is
|
||||
type nums is delta 0.1 digits 15;
|
||||
format : String := "zz_zzz_zzz_zzz_zzz_zz9.9";
|
||||
pic : picture := To_Picture (format);
|
||||
package Nums_io is new Decimal_Output (Nums);
|
||||
use Nums_IO;
|
||||
type U_64 is mod 2**64;
|
||||
|
||||
package mod_io is new Modular_IO (U_64);
|
||||
use mod_io;
|
||||
|
||||
function Is_Prime (Num : U_64) return boolean is
|
||||
package Flt_Funcs is new Ada.Numerics.Generic_Elementary_Functions
|
||||
(Float);
|
||||
use Flt_Funcs;
|
||||
|
||||
T : U_64 := 2;
|
||||
Limit : constant U_64 := U_64 (Sqrt (Float (Num)));
|
||||
begin
|
||||
if Num = 2 then
|
||||
return True;
|
||||
end if;
|
||||
while T <= Limit loop
|
||||
if Num mod T = 0 then
|
||||
return False;
|
||||
end if;
|
||||
T := T + (if T > 2 then 2 else 1);
|
||||
end loop;
|
||||
return True;
|
||||
end Is_Prime;
|
||||
Prime_Count : natural := 0;
|
||||
Prime_Test : U_64 := 42;
|
||||
begin
|
||||
loop
|
||||
if Is_Prime (Prime_Test) then
|
||||
Prime_Count := Prime_Count + 1;
|
||||
Put ("n =");
|
||||
Put (Item => Prime_Count, Width => 3);
|
||||
Put (Item => Nums (Prime_Test), Pic => pic);
|
||||
New_Line;
|
||||
Prime_Test := (Prime_Test * 2) - 1;
|
||||
end if;
|
||||
Prime_Test := Prime_Test + 1;
|
||||
exit when Prime_Count = 42;
|
||||
end loop;
|
||||
end Main;
|
||||
Loading…
Add table
Add a link
Reference in a new issue