я просто ищу все простые числа в диапазоне от 1 до n с решето эратосфена, а далее просто сравниваю вектор с простыми числами.
мой пример решения:#include
#include
using namespace std;
int main()
{
int n;
cin > > n;
vector prime (n+1, true);
prime[0] = prime[1] = false;
for (int i=2; i*i< =n; ++i)
if (prime[i])
for (int j=2; j< =n/i; j++)
if (prime[i*j]) prime[i*j] = false;
for(int i = 0; i < prime.size(); ++i)
{
for(int j = i; j < prime.size(); ++j)
{
if(prime[i]& & prime[j])
if(i+j==n)
cout < < i < < " " < < j < < endl;
}
}
cin.get();
cin.get();
}
var
a,i,n,a1:integer;
begin
a1:=30000;
read(n);
for i:=1 to n do begin
read(a);
if (a<a1) and (a div 10 <10) and (a div 10 >1)and (a mod 2 = 0) then a1:=a;
end;
writeln(a1);
end.
var
b,x,c:real;
i,n,a:integer;
begin
x:=0;
b:=0;
read(n);
for i:=1 to n do begin
read(a);
if (a mod 7 = 0) or (a mod 3 = 0) then b:=b+a;
if (a mod 7 =0) or (a mod 3 = 0) then x:=x+1;
end;
c:=b/x;
writeln(c);
end.
var
a,b,x,i,n:integer;
begin
x:=0;
read(n);
for i:=1 to n do begin
read(a);
if (a mod 10 <>1) and (a mod 2 = 1) then x:=x+1;
end;
writeln(x);
end.
Объем информации в целом = 3*5 = 15 бит
При уменьшении количества команд в два раза объем информации = log(2)32+log(2)16+log(2)8 = 5+4+3 = 12 бит