費馬小定理 hdu 4196

2021-06-07 23:55:22 字數 878 閱讀 2676

據說這題非常卡時間

題目:用不大於n內的所有數去組成乙個盡可能大的完全平方數。

完全平方數,顯然是所有的素因子的個數都是偶數,便取n!的所有素因子的個數,便 有了初步想法,算出n!的什麼素因子個數,奇數的就捨去乙個,偶數的全要,然後再全部乘起來,可是因為規模很大,即使快速冪乘也是會超時。

於是考慮把n!除掉那些奇數個因子的乘積,便是求a=c/b,由於是取模的,直接除必然不行。

考慮c%mod=(a%mod)*(b%mod);令a=a%mod; b=b%mod;c=c%mod;

則a=a%mod=(a*1)%mod=a%mod*1%mod=(a%mod)*(b^(mod-1))%mod --------因為(b^(mod-1))%mod=1,費馬小定理。

=(a*b)%mod*(b^(mod-2))%mod=(c%mod)*(b%mod)^(mod-2)%mod=c*b^(mod-2)

利用這個,就可以求出c/b的結果。

#include #include #define n 10000001

#define m 3000000

#define mod 1000000007

__int64 fac[n];

int pri[n];

int cnt;

void p()

__int64 fastpow(__int64 p,int d)

return ans;

}int getsum(int n,int p)

return sum;

}int main()

printf("%i64d\n",fac[n]*fastpow(b,mod-2)%mod);

}return 0;

}

費馬大定理與費馬小定理

費馬大定理,又被稱為 費馬最後的定理 由17世紀法國數學家皮耶 德 費瑪提出。他斷言當整數n 2時,關於x,y,z的方程 xn yn zn 沒有正整數解。德國佛爾夫斯克曾宣布以10萬馬克作為獎金獎給在他逝世後一百年內,第乙個證明該定理的人,吸引了不少人嘗試並遞交他們的 證明 被提出後,經歷多人猜想辯...

費馬小定理

選自 數論妙趣 數學女王的盛情款待 第六章 開門咒 數論中充斥著許多易於觀察到的事實,誘使人們用普通歸納推理的辦法去進行推廣。對此,必須慎之又慎,以免誤入陷阱。設想你偶而把 2自乘7次,再減去2,得2 7 2 126,隨後發現,126恰好能被2的冪指數7整除。接著又發現,25 2 30,30也能被2...

費馬小定理

費馬小定理 在較短時間內計算 a n p n極大 推倒 費馬小定律的描述,若a,p互質,則 a p 1 p 1 若不互質,則a p p a a,p互質,設n p 1 j餘n p 1 則 a n p a n p 1 p 1 j p a n p 1 a p 1 j p a n p 1 p a p 1 p...