Для пк - мало, да и для других девайсов - мало, приходится все время подчищать память
для пк норм - 500гб, минимум
#include <iostream>
using namespace std;
int MinDivisor (int n)
{
int i = 2, min_den = 1;
while (i <= n/2)
{
if (n % i == 0)
{
min_den = i;
break;
}
i++;
}
return min_den;
}
int main() {
int n, min;
cin >> n;
min = MinDivisor(n);
if (min == 1)
cout << n;
else
cout << min;
return 0;
}
Пример:
169
13
Var a:array [1..3,1..5] of integer;
i,j,s:integer;
begin
randomize;
for i:=1 to 3 do begin
for j:=1 to 5 do begin
a[i,j]:=random(21)-10;
write (a[i,j]:4);
end;
writeln;
end;
for i:=1 to 3 do
for j:=1 to 5 do
s:=s+a[i,j];
writeln (s);
readln;
end.
//PascalABC.NET 3.1 сборка 1219
procedure PrintMatrix(a: array[,] of integer);
begin
for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do
begin
writeln;
for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
write(a[i, j], ' ');
end;
writeln;
end;
begin
var a := MatrixRandom(ReadInteger('n ='), ReadInteger('m ='), 0, 255);
PrintMatrix(a);
for var i := a.GetLowerBound(0) to (a.GetUpperBound(0) div 2) do
for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
swap(a[i, j], a[a.GetLowerBound(0) + a.GetUpperBound(0) - i, j]);
PrintMatrix(a);
end.
Ответ: acdeb
Решение:
Исходная строка порождает три комбинации:
100 011 01 10 110
100 01 10 110 110
и
10 00110110110.
Третья исключена, потому что ни один символ не начинается с двух нулей.
Во второй два последних символа одинаковы.
Следовательно, первая комбинация верна.