Thursday, June 16, 2016

Euler phy function as sieve

#include<bits/stdc++.h>
using namespace std;

#define M 10000050

int phi[M];

int main()
{

  for (int i = 1; i < M; i++) {
    phi[i] = i;
  }
int t,w;
  for (int p = 2; p < M; p++) {
         w=phi[p];
    if (phi[p] == p) { // p is a prime
      for (int k = p; k < M; k += p) {
        phi[k] -= phi[k] / p;
   t=phi[k];

      }
    }
  }

}

No comments:

Post a Comment