Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
26
Task/Modular-exponentiation/Ada/modular-exponentiation-1.adb
Normal file
26
Task/Modular-exponentiation/Ada/modular-exponentiation-1.adb
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
with Ada.Text_IO, Ada.Command_Line, Crypto.Types.Big_Numbers;
|
||||
|
||||
procedure Mod_Exp is
|
||||
|
||||
A: String :=
|
||||
"2988348162058574136915891421498819466320163312926952423791023078876139";
|
||||
B: String :=
|
||||
"2351399303373464486466122544523690094744975233415544072992656881240319";
|
||||
|
||||
D: constant Positive := Positive'Max(Positive'Max(A'Length, B'Length), 40);
|
||||
-- the number of decimals to store A, B, and result
|
||||
Bits: constant Positive := (34*D)/10;
|
||||
-- (slightly more than) the number of bits to store A, B, and result
|
||||
package LN is new Crypto.Types.Big_Numbers (Bits + (32 - Bits mod 32));
|
||||
-- the actual number of bits has to be a multiple of 32
|
||||
use type LN.Big_Unsigned;
|
||||
|
||||
function "+"(S: String) return LN.Big_Unsigned
|
||||
renames LN.Utils.To_Big_Unsigned;
|
||||
|
||||
M: LN.Big_Unsigned := (+"10") ** (+"40");
|
||||
|
||||
begin
|
||||
Ada.Text_IO.Put("A**B (mod 10**40) = ");
|
||||
Ada.Text_IO.Put_Line(LN.Utils.To_String(LN.Mod_Utils.Pow((+A), (+B), M)));
|
||||
end Mod_Exp;
|
||||
16
Task/Modular-exponentiation/Ada/modular-exponentiation-2.adb
Normal file
16
Task/Modular-exponentiation/Ada/modular-exponentiation-2.adb
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
with Ada.Text_IO; use Ada.Text_IO;
|
||||
with Unbounded_Unsigneds; use Unbounded_Unsigneds;
|
||||
|
||||
with Strings_Edit.Unbounded_Unsigned_Edit;
|
||||
use Strings_Edit.Unbounded_Unsigned_Edit;
|
||||
|
||||
procedure Modular_Exponent is
|
||||
begin
|
||||
Put_Line
|
||||
( Image
|
||||
( Mod_Pow
|
||||
( Value ("2988348162058574136915891421498819466320163312926952423791023078876139"),
|
||||
Value ("2351399303373464486466122544523690094744975233415544072992656881240319"),
|
||||
From_Half_Word (10) ** 40
|
||||
) ) );
|
||||
end Modular_Exponent;
|
||||
Loading…
Add table
Add a link
Reference in a new issue