How to resolve the algorithm Strong and weak primes step by step in the XPL0 programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Strong and weak primes step by step in the XPL0 programming language
Table of Contents
Problem Statement
Note that the definition for strong primes is different when used in the context of cryptography.
Show all output here.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Strong and weak primes step by step in the XPL0 programming language
Source code in the xpl0 programming language
proc NumOut(Num); \Output positive integer with commas
int Num, Dig, Cnt;
[Cnt:= [0];
Num:= Num/10;
Dig:= rem(0);
Cnt(0):= Cnt(0)+1;
if Num then NumOut(Num);
Cnt(0):= Cnt(0)-1;
ChOut(0, Dig+^0);
if rem(Cnt(0)/3)=0 & Cnt(0) then ChOut(0, ^,);
];
func IsPrime(N); \Return 'true' if odd N > 2 is prime
int N, I;
[for I:= 3 to sqrt(N) do
[if rem(N/I) = 0 then return false;
I:= I+1;
];
return true;
];
int StrongCnt, WeakCnt, StrongCnt0, WeakCnt0, Strongs(36), Weaks(37);
int N, P0, P1, P2, T;
[StrongCnt:= 0; WeakCnt:= 1;
Weaks(0):= 3;
N:= 7; P1:= 3; P2:= 5; \handles unique case where (2+5)/2 = 3.5
repeat if IsPrime(N) then
[P0:= P1; P1:= P2; P2:= N;
T:= (P0+P2)/2;
if P1 > T then
[if StrongCnt < 36 then Strongs(StrongCnt):= P1;
StrongCnt:= StrongCnt+1;
];
if P1 < T then
[if WeakCnt < 37 then Weaks(WeakCnt):= P1;
WeakCnt:= WeakCnt+1;
];
];
if P1 < 1_000_000 then
[StrongCnt0:= StrongCnt; WeakCnt0:= WeakCnt];
N:= N+2;
until P1 >= 10_000_000;
Text(0, "First 36 strong primes:^M^J");
for N:= 0 to 36-1 do
[NumOut(Strongs(N)); ChOut(0, ^ )];
Text(0, "^M^JStrong primes below 1,000,000: ");
NumOut(StrongCnt0);
Text(0, "^M^JStrong primes below 10,000,000: ");
NumOut(StrongCnt);
Text(0, "^M^JFirst 37 weak primes:^M^J");
for N:= 0 to 37-1 do
[NumOut(Weaks(N)); ChOut(0, ^ )];
Text(0, "^M^JWeak primes below 1,000,000: ");
NumOut(WeakCnt0);
Text(0, "^M^JWeak primes below 10,000,000: ");
NumOut(WeakCnt);
CrLf(0);
]
You may also check:How to resolve the algorithm Determine if a string is collapsible step by step in the Python programming language
You may also check:How to resolve the algorithm Old lady swallowed a fly step by step in the PicoLisp programming language
You may also check:How to resolve the algorithm Rosetta Code/Find unimplemented tasks step by step in the Clojure programming language
You may also check:How to resolve the algorithm Colour bars/Display step by step in the Wren programming language
You may also check:How to resolve the algorithm Hello world/Text step by step in the Ela programming language