給你乙個數n,問你這個數是不是卡麥可數。如果乙個數是合數且滿足對於每乙個比它小的數a都有an
=a(模
n下) an=
a(模n
下)
;暴力判斷即可,但是要注意先判斷是否是質數,如果是質數一定不是卡麥可數,就不需要進行費馬檢驗了。否則親測超時。
#include
#include
using
namespace
std;
typedef
long
long
int ll;
bool flag1 = false, flag2 = false;
int m;
inline ll pow_m(ll a, ll b, ll mod)
res = res % mod;
return res;
}int main()
}if (!flag2)
for (int i = 2; i <= n - 1; i++)
}if (!flag1&&flag2) cout
<< "the number "
<< n << " is a carmichael number."
<< endl;
else
cout
<< n << " is normal."
<< endl;
}}
UVA 10006(卡麥可數 素數打表)
發表於2017 2 20 21 43 25 16人閱讀 分類 其他oj 數論 組合數學 題意 判斷乙個數是否是卡麥可數。剛開始看到x n x mod n 老實說把我嚇了一跳,乙個數餘n怎麼會搞出乙個這麼大的數。想了半天一度懷疑人生,去翻題解,結果主流都是相當於求解x x n mod n 就以為是不是...
uva1386 矩陣快速冪
題意 乙個細胞自動機,有n個格仔,每個格仔的取值為0 m 1。給定距離d,每次操作後每個格仔的值將變為到它距離不超過d的所有格仔在操作之前的值之和除以m的餘數。思路 矩陣快速冪 include include define ll long long const int n 505 int n,m,d...
uva11551矩陣快速冪
題目看了半天沒看懂,就是把乙個數列更新r次,每次更新就是計算和,就是每乙個數,只要出現了的錶號都要加上去,具體看 矩陣快速冪實現加速 include include include include include include include include include include inc...