Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,15 +0,0 @@
|
|||
generic
|
||||
type Number is private;
|
||||
Zero : Number;
|
||||
One : Number;
|
||||
Two : Number;
|
||||
with function "+" (X, Y : Number) return Number is <>;
|
||||
with function "*" (X, Y : Number) return Number is <>;
|
||||
with function "/" (X, Y : Number) return Number is <>;
|
||||
with function "mod" (X, Y : Number) return Number is <>;
|
||||
with function ">" (X, Y : Number) return Boolean is <>;
|
||||
package Prime_Numbers is
|
||||
type Number_List is array (Positive range <>) of Number;
|
||||
function Decompose (N : Number) return Number_List;
|
||||
function Is_Prime (N : Number) return Boolean;
|
||||
end Prime_Numbers;
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
package body Prime_Numbers is
|
||||
-- auxiliary (internal) functions
|
||||
function First_Factor (N : Number; Start : Number) return Number is
|
||||
K : Number := Start;
|
||||
begin
|
||||
while ((N mod K) /= Zero) and then (N > (K*K)) loop
|
||||
K := K + One;
|
||||
end loop;
|
||||
if (N mod K) = Zero then
|
||||
return K;
|
||||
else
|
||||
return N;
|
||||
end if;
|
||||
end First_Factor;
|
||||
|
||||
function Decompose (N : Number; Start : Number) return Number_List is
|
||||
F: Number := First_Factor(N, Start);
|
||||
M: Number := N / F;
|
||||
begin
|
||||
if M = One then -- F is the last factor
|
||||
return (1 => F);
|
||||
else
|
||||
return F & Decompose(M, Start);
|
||||
end if;
|
||||
end Decompose;
|
||||
|
||||
-- functions visible from the outside
|
||||
function Decompose (N : Number) return Number_List is (Decompose(N, Two));
|
||||
function Is_Prime (N : Number) return Boolean is
|
||||
(N > One and then First_Factor(N, Two)=N);
|
||||
end Prime_Numbers;
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
with Prime_Numbers, Ada.Text_IO;
|
||||
|
||||
procedure Test_Prime is
|
||||
|
||||
package Integer_Numbers is new
|
||||
Prime_Numbers (Natural, 0, 1, 2);
|
||||
use Integer_Numbers;
|
||||
|
||||
procedure Put (List : Number_List) is
|
||||
begin
|
||||
for Index in List'Range loop
|
||||
Ada.Text_IO.Put (Positive'Image (List (Index)));
|
||||
end loop;
|
||||
end Put;
|
||||
|
||||
begin
|
||||
Put (Decompose (12));
|
||||
end Test_Prime;
|
||||
Loading…
Add table
Add a link
Reference in a new issue