- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
program lab15;
uses crt;
const nmax=100;
var z,i,j,k,n,m:integer;
pr:boolean;
stolb:boolean;
sum:array[1..nmax] of integer;
A:array[1..nmax,1..nmax] of integer;
procedure swap(var a,b:integer);
var c:integer;
begin
c:=0;
c:=a;
a:=b;
b:=c;
end;
function prostoe(x:integer):boolean;
var i:integer;
p:boolean;
begin
x:=abs(x);
p:=false;
if x>1 then p:=true;
for i:=2 to x-1 do
if x mod i=0 then p:=false;
prostoe:=p
end;
begin
z:=0;
stolb:=false;
pr:=false;
clrscr;
write('n= ');
readln(n);
write('m= ');
readln(m);
for i:=1 to n do
for j:=1 to m do
read(A[i,j]);
for i:=1 to n do
sum[i]:=0;
for i:=1 to n do
for j:=1 to m do
sum[i]:=sum[i]+abs(a[i,j]);
for i:=1 to n do
for j:=1 to m do
if prostoe(a[i,j])=true then pr:=true;
for i:=1 to m-1 do
begin
for j:=i+1 to m do
begin
z:=0;
for k:=1 to n do
begin
if a[k,i]=a[k,j] then z:=z+1;
if z=n then stolb:=true;
end;
end;
end;
if (pr=true) and (stolb=true) then
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if sum[i]>sum[j] then begin
swap(sum[i],sum[j]);
for k:=1 to m do
swap(a[i,k],a[j,k]);
end;
end;
writeln('stolbec= ', stolb);
writeln('prostoe= ', pr);
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(a[i,j], ' ');
end;
readkey;
end.
guest 14.06.2010 20:05 # +2
bugmenot 16.06.2010 12:21 # 0
PS: тест на простоту еще искромётнее чем в 3476, можно было бы им и ограничиться
Webkill 16.06.2010 12:33 # −1
о_О
adli__82 17.08.2010 10:16 # 0
"c:=0;"
перед
"c:=a;"
это явно кого-то "переучили"
а насчёт
"(pr=true) and (stolb=true)"
это порсто супер
p.s. написать "pr and stolb" явно сложнее :)