Răspuns :
#include <iostream>
#include <fstream>
#include <cmath>
#define MAX 1000000
using namespace std;
void prim(int N,int w[78500]){
//Implementare eficienta pentru salvarea numerelor prime pana la val n in w
//Nu am sa scriu aici rezolvarea acesteia pentru a ii lasa pe cei care mai doresc sa lucreze la problema sa se gandeasca la ea
//Cine doreste sa stie si aceasta parte imi poate trimite msj si ii voi lasa tot codul sursa
}
int main()
{
ifstream fin("paisprezece.in");
ofstream fout("paisprezece.out");
int n,m,nr=0,v[20]={2,3,5,7,11,13,17,19},save,w[78500],start = 1;
w[0]=2;
prim(MAX,w);
fin>>n>>m;
if(pow(2,13)>=n && pow(2,13)<=m) nr++;
if(pow(3,13)>=n && pow(3,13)<=m) nr++;
for(int i=0;i<=7;i++){
save = pow(v[i],6);
if(save>m)
i = 8;
else {
for(int j=start;j<=78497;j++){
if (w[j]*save > m) break;
else if(w[j]*save >=n && i!=j) nr++;
}
start = 0;
}
}
fout << nr;
fin.close();
fout.close();
return 0;
}
Asta este rezolvarea mea pentru a lua 100 puncte pe campion. Tot ce mai trebuie sa faci este sa creezi prim(n,w) care sa iti salveze in vectorul w primele n numere prime!
Sper ca te-am ajutat. Succes!
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Așteptăm cu nerăbdare să vă revedem și nu uitați să ne salvați în lista de favorite!