Pagini recente » Cod sursa (job #2030835) | Cod sursa (job #3290980) | Rating Bighiu Andra (Andra_bgh) | Cod sursa (job #1041018) | Cod sursa (job #971071)
Cod sursa(job #971071)
#include <cstdio>
#include <vector>
#include <cmath>
int main(void)
{
freopen("fractii.in", "r", stdin);
freopen("fractii.out", "w", stdout);
int nV = 0, nS = 0, nC = 0;
scanf("%d", &nV);
std::vector<int> myV;
bool *myB = new bool[nV + 1];
for(int i = 0; i <= nV; i++)
myB[i] = true;
for(int i(2); i <= sqrt(nV); i++)
if(myB[i])
for(int j(i * i); j <= nV; j += i)
myB[j] = false;
for(int i(2); i <= nV; i++)
if(myB[i])
{
nS++;
myV.push_back(i);
}
delete[] myB;
int *nArr = new int[nV + 1];
for(int i(2); i <= nV; i++)
{
int j = 0;
while(i % myV[j] != 0)
j++;
nArr[i] = myV[j];
}
nC = (nV - 1) * 2 + 1;
for(int i(2); i <= nV; i++)
for(int j(i + 1); j <= nV; j++)
if(i % nArr[j] != 0 && j % nArr[i] != 0) nC += 2;
printf("%d ", nC);
return 0;
}