Pagini recente » Cod sursa (job #1761712) | Cod sursa (job #554192) | Cod sursa (job #2864553) | Cod sursa (job #483414) | Cod sursa (job #1874876)
#include <iostream>
#include <fstream>
#include <bitset>
using namespace std;
ifstream in("fractii.in");
ofstream out("fractii.out");
int n,z,raspuns;
bitset<1000001> ciur;
int prime[78500];
int cmmdc(int a,int b)
{
int r;
r=a%b;
while(r)
{
a=b;
b=r;
r=a%b;
}
return b;
}
bool ireductibila(int a, int b)
{
if(b==1)
{
return 1;
}
else if(ciur[a]==1 && ciur[b]==1)
{
if(cmmdc(a,b)==1)
{
return 1;
}
}
else if(ciur[a]==0&&ciur[b]==1)
{
if(b>a)
{
if(b%a!=0)
{
return 1;
}
}
else
{
return 1;
}
}
else if(ciur[b]==0&&ciur[a]==1)
{
if(a>b)
{
if(a%b!=0)
{
return 1;
}
}
else
{
return 1;
}
}
else if(a!=b)
{
return 1;
}
return 0;
}
int main()
{
in>>n;
for(int i = 2; i<=1000000; i++)
{
if(ciur[i]==0)
{
z++;
prime[z]=i;
for(int j = 2; j<=1000000/i; j++)
{
ciur[i*j]=1;
}
}
}
raspuns=n;
for(int i = 2; i<=n; i++)
{
for(int j = 1; j<=n; j++)
{
if(ireductibila(i,j))
{
raspuns++;
}
}
}
out<<raspuns;
return 0;
}