Informatică, întrebare adresată de DeBwos, 8 ani în urmă

Daca se poate si niste explicatii...Complexitate (optima)...

Anexe:

Răspunsuri la întrebare

Răspuns de Levi2020
0

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("date.in");

bool prim(int n)

{int d;

if(n<2)

return false;

if(n==2)

return true;

for(d=2;d<=n/2;d++)

if(n%d==0)

return false;

return true;

}

int main()

{

int x,k,p=1,ok=0,Min,Max,smin,pmin,smax,pmax;

f>>k;

while(f>>x)

{

if(prim(x))

{p=p*x;

if(ok==0)

{

Min=x;

Max=x;

ok=1;

}

if(Max<x)

Max=x;

if(Min>x)

Min=x;

}

}

int l=k-1,m=k-1;

smin=Min;

pmin=Min,

smax=Max;

pmax=Max;

for(int i=Min+1;i<=Max;i++)

if(l==0)

break;

else

if((p%i==0 && i%2==1) || i==2)

{

smin=smin+i;

pmin=pmin*i;

l--;

}

for(int j=Max-1;j>=Min;j--)

if(m==0)

break;

else

if((p%j==0 && j%2==1) || j==2)

{

smax=smax+j;

pmax=pmax*j;

m--;

}

cout<<"Suma a k celor mai mici numere prime este de"<<" "<<smin<<endl;

cout<<"Suma a k celor mai mari numere prime este de"<<" "<<smax<<endl;

cout<<"Produsul a k celor mai mici numere prime este"<<" "<<pmin<<endl;

cout<<"Produsul a k celor mai mari numere prime este"<<" "<<pmax;

return 0;

}

ASTA E BUNA:)

Alte întrebări interesante