Pagini recente » Cod sursa (job #1311840) | Cod sursa (job #2059147) | Cod sursa (job #170813) | Cod sursa (job #743364) | Cod sursa (job #2365302)
#include <iostream>
#include <fstream>
#include <vector>
#define NMAX 1000000
using namespace std;
ifstream fi("cufar.in");
ofstream fo("cufar.out");
int N;
int P;
int MAXX;
bool ciur[NMAX];
long long nrprime[NMAX + 5][11];
int poz[NMAX];
vector<int> primes;
pair<int, int> num[NMAX];
void MakeCiur()
{
for(int i = 2; i <= NMAX; ++i)
{
if(!ciur[i])
{
poz[i] ++;
nrprime[i][poz[i]] = i;
for(int j = i + i; j <= NMAX; j += i)
{
nrprime[j][++poz[j]] = i;
ciur[j] = 1;
}
}
}
}
int main()
{
fi >> P >> N;
int a, b;
MakeCiur();
long long sum = 0;
for(int i = 1; i <= N; ++i)
{
fi >> a >> b;
sum += nrprime[a][b];
}
fo << sum;
}