Cod sursa(job #1923489)

Utilizator RobertAndruscaAndrusca Robert RobertAndrusca Data 11 martie 2017 09:48:37
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
#define nmax 1000000

int a[1000001], n;
using namespace std;
void Ciur(int n)
{
   int i, j;
    a[1]=1;
    for(i = 4; i <= n; i += 2)a[i] = 1;
     for(i = 3; i * i <=n; i = i + 2)
      if(a[i] == 0)
       for(j = i * i; j <= n; j = j + 2 * i)a[j] = 1;
}
void Citire()
{
  ifstream in("fractii.in");
  in >> n;
  in.close();
}
int Cmmdc(int p, int q)
{
  int r;
  while(q != 0)
  {
    r = p % q;
    p = q;
    q = r;
  }
  return p;
}

int main()
{
   Citire();
   Ciur(nmax);
   int p, q, f;
   f = 2 * n - 1;
   ofstream out("fractii.out");
   for(p = 2; p <= n; p++)
    for(q = 2; q < p; q++)
        if(a[p] == 0 || Cmmdc(p, q) == 1)
         f += 2;
    out << f << "\n";
    out.close();
    return 0;
}