所以while(x)的意思是:如果x不等于0肿男,則執(zhí)行下面的語句勃蜘。
為C++中的一個(gè)運(yùn)算符磅甩,意思為:對(duì)它后面的值按位取反,所以要使x等于0绩社,就要使x的所有位(包括符號(hào)位)都為1.
所以while(~x)的意思是:如果x有任何一位不是1,則執(zhí)行下面的語句赂苗。
[C/C++中各種類型int愉耙、long、double拌滋、char表示范圍](http://blog.csdn.net/xuexiacm/article/details/8122267)
//篩選法打歐拉函數(shù)表
#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 歐拉函數(shù)表
n | φ(n) |
---|---|
1 | 1 |
2 | 1 |
3 | 2 |
4 | 2 |
5.Math.floor(Math.random*10); nan