Cod sursa(job #2169634)
| Utilizator | Data | 14 martie 2018 16:22:36 | |
|---|---|---|---|
| Problema | Divizori Primi | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <fstream>
using namespace std;
ifstream cin("divprim.in");
ofstream cout("divprim.out");
int factprim(int n)
{
int cnt = 0,d=2,exp=0;
while(n > 1)
{
exp = 0;
while(n % d == 0)
{
exp++;
n /= d;
}
if(exp > 0){
cnt++;
}
if(n > 1){
d = n;
}
}
return cnt;
}
int main()
{
int n,r=0,pas,t,k,i;
cin >> t;
for(i=0; i<t; i++)
{
cin >> n >> k;
pas = 1 << 15;
while(pas!=0)
{
if(factprim(r+pas) == k && r+pas < n){
r+=pas;
}
pas /= 2;
}
cout << r <<"\n";
}
return 0;
}
