Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
24
Task/Babbage-problem/PL-I/babbage-problem.pli
Normal file
24
Task/Babbage-problem/PL-I/babbage-problem.pli
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
/* Babbage might have used a difference engine to compute squares. */
|
||||
/* The algorithm used here uses only additions to form successive squares. */
|
||||
/* Since there is no guarantee that the final square will not exceed a */
|
||||
/* 32-bit integer word, modulus is formed to limit the magnitude of the */
|
||||
/* squares, since we are really interested only in the last six digits of */
|
||||
/* the square. */
|
||||
|
||||
Babbage_problem: procedure options (main); /* R. Vowels, 19 Dec. 2021 */
|
||||
declare n fixed decimal (5);
|
||||
declare (odd, sq) fixed binary (31);
|
||||
|
||||
odd = 3; sq = 4; /* the initial square is 4 */
|
||||
|
||||
do n = 3 to 99736;
|
||||
odd = odd + 2;
|
||||
sq = sq + odd; /* form the next square */
|
||||
if sq >= 1000000 then sq = sq - 1000000; /* keep the remainder */
|
||||
if sq = 269696 then leave;
|
||||
end;
|
||||
put ('The smallest number whose square ends in 269696 is ' || trim(n) );
|
||||
put skip list ('The corresponding square is ' || trim (n*n) );
|
||||
/* Even if the number had been 99736, n*n would not have overflowed */
|
||||
/* because decimal arithmetic allows up to 15 decimal digits. */
|
||||
end Babbage_problem;
|
||||
Loading…
Add table
Add a link
Reference in a new issue