oClasaAnonima Megaelev

Data inscrierii: 11/Apr/2008 Mesaje: 29
|
Trimis: 13.04.2008 14:13 Titlul subiectului: Problema 17 |
|
|
| Cod: |
{17. se citeste de la tastatura o valorare naturala m (2<=m<=100). scrieti
programul pascal care construieste in memorie si apoi afiseaza pe ecran
matricea cu m linii si m coloane de numere intregi, construieste dupa urmatoarea
regula: elementul de pe linia i si coloana j a matricei (1<=i, j<=m) este :
- 1 daca i*i+j*j este patrat perfect
- 2 daca i*i+j*j nu este patrat perfect, dar este nr prim mai mare decat 2
- 3 in rest}
program new;
var x:array[1..100,1..100] of integer;
i,j,m:integer;
function prim(c:integer):boolean;
var k,d:integer;
begin
d:=0;
for k:=2 to c div 2 do if c mod k=0 then d:=d+1;
if d=0 then prim:=true
else prim:=false;
end;
begin
write('m: '); readln(m);
for i:=1 to m do for j:=1 to m do if sqrt(i*i+j*j)=trunc(sqrt(i*i+j*j)) then x[i,j]:=1
else if prim(i*i+j*j) then x[i,j]:=2
else x[i,j]:=3;
for i:=1 to m do begin
for j:=1 to m do write(x[i,j],' ');
writeln;
end;
end.
|
|
|