program Prime_Pyramid; USES crt; FUNCTION IsPrime( n : integer ) : Boolean; VAR count : integer; prime : boolean; BEGIN prime := True; FOR count:=2 TO round( sqrt(n)+1 ) DO BEGIN IF (count <> n) THEN IF ( n mod count) = 0 THEN Prime := False; END; IF (prime=True) THEN IsPrime := True; IF (prime=False) THEN Isprime := False; END; PROCEDURE PrintPyramid( n : integer ); VAR check : boolean; count : integer; BEGIN IF n=1 THEN writeln(n) ELSE BEGIN PrintPyramid(n-1); check := IsPrime(n); IF check = True THEN BEGIN writeln(n); END; END; END; VAR num : integer; BEGIN clrscr; num := 12446; clrscr; PrintPyramid(num); readkey; END.