25 lines
949 B
Ada
25 lines
949 B
Ada
with Ada.Text_IO, Multiplicative_Order;
|
|
|
|
procedure Main is
|
|
package IIO is new Ada.Text_IO.Integer_IO(Integer);
|
|
use Multiplicative_Order;
|
|
begin
|
|
IIO.Put(Find_Order(3,10));
|
|
IIO.Put(Find_Order(37,1000));
|
|
IIO.Put(Find_Order(37,10_000));
|
|
IIO.Put(Find_Order(37, 3343));
|
|
IIO.Put(Find_Order(37, 3344));
|
|
-- IIO.Put(Find_Order( 2,1000));
|
|
--would raise Program_Error, because there is no I with 2**I=1 mod 1000
|
|
Ada.Text_IO.New_Line;
|
|
IIO.Put(Find_Order(3, (2,5))); -- 3 * 5 = 10
|
|
IIO.Put(Find_Order(37, (8, 125))); -- 8 * 125 = 1000
|
|
IIO.Put(Find_Order(37, (16, 625))); -- 16 * 625 = 10_000
|
|
IIO.Put(Find_Order(37, (1 => 3343))); -- 1-element-array: 3343 is a prime
|
|
IIO.Put(Find_Order(37, (11, 19, 16))); -- 11 * 19 * 16 = 3344
|
|
|
|
-- this violates the precondition, because 8 and 2 are not coprime
|
|
-- it gives an incorrect result
|
|
IIO.Put(Find_Order(37, (11, 19, 8, 2)));
|
|
end Main;
|