Factors of an integer: Difference between revisions

Content added Content deleted
m (→‎{{header|R}}: Syntax highlighting.)
Line 532: Line 532:
BEGIN
BEGIN


COMMENT RETURN P MOD Q;
COMMENT ALGOL-M PROGRAM TO DISPLAY THE FACTORS OF AN INTEGER

INTEGER I, N, LIMIT, FOUND, START, DELTA;
STRING(1) ANOTHER;

COMMENT COMPUTE P MOD Q;
INTEGER FUNCTION MOD (P, Q);
INTEGER FUNCTION MOD (P, Q);
INTEGER P, Q;
INTEGER P, Q;
Line 544: Line 539:
END;
END;


INTEGER I, N, LIMIT, FOUND, START, DELTA;
COMMENT MAIN PROGRAM BEGINS HERE;

ANOTHER := "Y";
WHILE ANOTHER = "Y" OR ANOTHER = "y" DO
WHILE 1 = 1 DO
BEGIN
BEGIN
WRITE ("Number to factor:");
WRITE ("NUMBER TO FACTOR (OR 0 TO QUIT):");
READ (N);
READ (N);
IF N = 0 THEN GOTO DONE;
WRITE ("The factors are:");
WRITE ("THE FACTORS ARE:");


COMMENT CHECK WHETHER NUMBER IS EVEN OR ODD;
COMMENT CHECK WHETHER NUMBER IS EVEN OR ODD;
Line 567: Line 563:
FOUND := 0;
FOUND := 0;
I := START;
I := START;
LIMIT := N / START;
LIMIT := N / I;
WHILE I <= LIMIT DO
WHILE I <= LIMIT DO
BEGIN
BEGIN
IF MOD(N, I) = 0 THEN
IF MOD(N, I) = 0 THEN
BEGIN
BEGIN
WRITE (I);
WRITEON (I);
FOUND := FOUND + 1;
FOUND := FOUND + 1;
END;
END;
Line 578: Line 574:
IF FOUND = 0 THEN LIMIT := N / I;
IF FOUND = 0 THEN LIMIT := N / I;
END;
END;
IF FOUND = 0 THEN WRITEON (" NONE - THE NUMBER IS PRIME.");

IF FOUND = 0 THEN WRITE ("None - the number is prime.");
WRITE("");
WRITE(" ");
WRITE("Do another (y/n)?");
READ (ANOTHER);
END;
END;

WRITE (" ");
WRITE ("Goodbye");
DONE: WRITE ("GOODBYE");

END
</lang>
END</lang>
{{out}}
<pre>NUMBER TO FACTOR (OR 0 TO QUIT):
-> 96
THE FACTORS ARE: 2 3 4 6 8 12 16 24 32 48

NUMBER TO FACTOR (OR 0 TO QUIT):
-> 97
THE FACTORS ARE: NONE - THE NUMBER IS PRIME.

NUMBER TO FACTOR (OR 0 TO QUIT):
-> 98
THE FACTORS ARE: 2 7 14 49

NUMBER TO FACTOR (OR 0 TO QUIT):
-> 0
GOODBYE</pre>


=={{header|APL}}==
=={{header|APL}}==