所以while(x)的意思是:如果x不等于0,则执行下面的语句。
为C++中的一个运算符,意思为:对它后面的值按位取反,所以要使x等于0,就要使x的所有位(包括符号位)都为1.
所以while(~x)的意思是:如果x有任何一位不是1,则执行下面的语句。
//筛选法打欧拉函数表
#define Max 1000001
int e[Max];
void Init(){
e[1]=0;
for(int i=2;i<MAX;++i)
e[i]=i;
for(int i=2;i<MAX;++i)
if(e[i]==i)
for(int j=i;j<MAX;j+=i)
e[j]=e[j]/i*(i-1);
}
4.1-4 欧拉函数表
n | φ(n) |
---|---|
1 | 1 |
2 | 1 |
3 | 2 |
4 | 2 |
5.Math.floor(Math.random*10); nan