我用C ++编写了phi函数,但是如果我用1.000.000元素声明数组phi,我的程序会崩溃。如果我将它减少到99.999个元素,它不会给我任何错误并且工作正常。有人可以建议我对代码进行任何优化吗?这都与学校有关。
#include <iostream>
using namespace std;
int main()
{
int M;
cin >> M;
int phi[1000000];
for (int i = 1; i <= M; ++i)
phi[i] = i-1;
for (int i = 2; i <= M; ++i)
for (int j = 2*i; j <= M; j += i)
phi[j] -= phi[i];
cout << phi[M];
}