并且欧拉的总数恰好是c ++的k倍

时间:2016-10-08 14:30:04

标签: c++

鉴于n& ķ。和欧拉的完全相同的k次n& k是非常大的数字。我正在尝试使用以下代码。但它没有那么多优化。有人可以提供有效的解决方案吗?

#include <iostream>
using namespace std;

 int gcd(int a, int b)
{
    if (a == 0)
        return b;
    return gcd(b%a, a);
}


int phi(unsigned int n)
{
    unsigned int result = 1;
    for (int i=2; i < n; i++)
        if (gcd(i, n) == 1)
            result++;
    return result;
}


int main()
{
    long n,i,k;
    cin >>n>>k;
    long a[n];
    for (i=1; i<=n; i++)
      a[i] = phi(i);
    for (i=1; i<=k; i++)
      n = a[n];
    cout << n<<endl;
    return 0;
}

0 个答案:

没有答案