Cod sursa(job #2690990)
Utilizator | Data | 26 decembrie 2020 17:25:10 | |
---|---|---|---|
Problema | Divizori Primi | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.73 kb |
#include <fstream>
#include<algorithm>
#define NMAX 1000005
using namespace std;
ifstream cin("divprim.in");
ofstream cout("divprim.out");
int v[NMAX],m[NMAX][8];
void ciur(int n){
for(int i=2;i<=n;i++){
if(!v[i]){
v[i]=1;
for(int j=i+i;j<=n;j+=i){
v[j]++;
}
}
}
}
int main()
{
int t;
cin>>t;
ciur(NMAX);
for(int i=1;i<NMAX;i++) {
for(int j=0;j<8;j++)
if(v[i] == j)
m[i][j] = i;
else
m[i][j] = m[i - 1][j];
}
while(t) {
int n,k;
cin>>n>>k;
cout<<m[n][k]<<'\n';
t--;
}
return 0;
}