Proszę o pomoc, mam zadanie, w którym mam obliczyć tak na prawdę wartość funkcji Eulera (fi).
Napisałem coś takiego, ale jest to chyba źle:
#include <iostream>
using namespace std;
int main()
{
int t;
cin >> t;
while (t--)
{
int n,a=2,p=1,q=1,wynik,n1,wynik1;
cin >> n;
n1=n;
if (n==1)
{
wynik1=0;
cout << wynik1;
break;
}
else
{
while (a<=n)
{
if (n%a==0)
{
p=p*a;
q=q*(a-1);
while (n%a!=0)
{
n=n/a;
}
}
else
a=a++;
}
}
q=q*n1;
wynik=q/p;
cout << wynik << endl;
}
system("PAUSE");
return 0;
}