據說這題非常卡時間
題目:用不大於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...