Skip to content

Commit 87ace8a

Browse files
authored
Euler Totient function algorithm in C++
1 parent 4314dd9 commit 87ace8a

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

C++/euler_totient_func.cpp

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include<cstdio>
2+
#include<iostream>
3+
4+
int phi[1000006], prime[1000006];
5+
void sievephi(int n)
6+
{
7+
int i,j;
8+
9+
for(i=1; i<=n; i++) phi[i]=i;
10+
11+
phi[1]=1;
12+
prime[1]=1;
13+
14+
for(i=2; i<=n; i++)
15+
{
16+
if(!prime[i])
17+
{
18+
for(j=i;j<=n; j+=i)
19+
{
20+
prime[j+i]=1;
21+
phi[j]=(phi[j]/i)*(i-1);
22+
23+
}
24+
}
25+
}
26+
}
27+
28+
29+
int main()
30+
{
31+
int i,n=10;
32+
sievephi(n);
33+
34+
for(i=1; i<=n; i++)
35+
if(!prime[i])
36+
printf("%d ", i);
37+
printf("\n");
38+
39+
for(i=1; i<=n; i++)
40+
printf("%d = %d\n", i, phi[i]);
41+
42+
return 0;
43+
}

0 commit comments

Comments
 (0)