Pagini recente » Cod sursa (job #1694078) | Cod sursa (job #1985909) | Cod sursa (job #689075) | Cod sursa (job #2094131) | Cod sursa (job #2291424)
#include <iostream>
#include <fstream>
using namespace std;
ifstream input("fractii.in");
ofstream output("fractii.out");
int binary_gcd(int u, int v)
{
int shl = 0;
while ( u && v && u!=v ) {
bool eu = !(u & 1);
bool ev = !(v & 1);
if ( eu && ev ) {
++shl;
u >>= 1;
v >>= 1;
}
else if ( eu && !ev ) u >>= 1;
else if ( !eu && ev ) v >>= 1;
else if ( u>=v ) u = (u-v)>>1;
else {
int tmp = u;
u = (v-u)>>1;
v = tmp;
}
}
return !u? v<<shl : u<<shl;
}
int main()
{
int N, cateisba = 0;
input >> N;
for(int i = 1; i <= N; i++) {
for(int j = 1; j <= N; j++) {
if(binary_gcd(i, j) == 1)
cateisba++;
}
}
output << cateisba;
return 0;
}