基準時間限制:1 秒 空間限制:131072 kb 分值: 0 難度:基礎題 收藏 關注
設m是正整數,a是整數,若a模m的階等於φ(m),則稱a為模m的乙個原根。(其中φ(m)表示m的尤拉函式)
給出1個質數p,找出p最小的原根。
input
輸入1個質數p(3 <= p <= 10^9)
output
輸出p最小的原根。
input示例
3 output示例
2參考**參考逐夢者
#include
#include
#define _max 10000005
int p, tot;
int a[_max];
//已知質數p,無論g為何值,在指數為p-1時結果均為成立,
//如果指數不為p-1時也想滿足g^i = 1(mod p),則該指數一定是p-1的因子
//並且指數要小於sqrt(p-1)
void store()
while (now % i == 0)
}if (now != 1)
return ;
}//快速冪取模p
long
long qpow(long
long x, long
long n)
n >>= 1;
x = x * x % p;
}return ret;
}//檢測是否滿足g^i = 1(mod p)當且僅當指數為p-1時成立,0//因為p為質數,所以可以肯定,無論g為什麼,當指數為p-1時一定成立,省去判斷
//只需要判斷其他情況不等於1
int check(int g)
}return1;}
//封裝函式,1int solve()
}return0;}
int main()
return
0;}
原根 51nod 1135(原根)
設m是正整數,a是整數,若a模m的階等於 m 則稱a為模m的乙個原根。其中 m 表示m的尤拉函式 給出1個質數p,找出p最小的原根。input 輸入1個質數p 3 p 10 9 output 輸出p最小的原根。sample input 3sample output 2題意 求乙個質數的最小原根 分析...
51nod 1135 求原根 板子
1135 原根 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 設m是正整數,a是整數,若a模m的階等於 m 則稱a為模m的乙個原根。其中 m 表示m的尤拉函式 給出1個質數p,找出p最小的原根。input 輸入1個質數p 3 p 10 9 output 輸出p最小的原根...
51Nod 1135 求乙個奇質數的最小原根
題目鏈結 因為最小原根都不大,可以考慮暴力列舉去驗證。對於乙個奇質數p pp,可以先對 p 1 p 1 p 1 質因數分解為 p 1 p 1a1p 2a2p 3a3.p ta t p 1 p 1 p 2 p 3 p t p 1 p1a1 p2 a2 p3a3 pt at 對於列舉的數g gg,若恒有...