實驗吧 大數模運算
題目大意:求$12345^$的所有約數之和,並對其取模$9901$再輸出。
唯一分解定理+生成函式
對於任意乙個數$a$,由唯一分解定理得$a=\prod_^k p_i^$,
故由生成函式的定義可知,其約數之和為$s=\prod_^k (\sum_^ p_i^j)$.
而對於$a^n$,則有$a=\prod_^k p_i^$.
故其約數之和為$s'=\prod_^k (\sum_^ p_i^j)$.
由等比數列求和公式即可求得答案.
**如下:
1 #include 2#define n 10005
3using
namespace
std;
4 typedef long
long
ll;5 ll a=12345,n=12345,m=9901,p[n],c[n],k,ans=1
;6 ll minus(ll a,ll b)
7 ll mul(ll a,ll b)
8ll powmod(ll a,ll n)return
r;15}16
int main(void
)p[k++]=i;22}
23if(m!=1)27
for(int i=0;ii)
28 ans=mul(ans,mul(minus(powmod(p[i],c[i]+1),1),powmod(p[i]-1,m-2
)));
29 printf("
%lld\n
",ans);
30 }
Python 大數運算 (進擊吧!階乘)
進擊吧!階乘 a 0 while true try a input sum 1 for i in range 1,a 1 sum sum i print sum except breakpython實現迴圈輸入到檔案結尾 類似於c語言的 while scanf d n eof while true ...
實驗吧 程式設計迴圈 求底運算
要好好學寫指令碼!迴圈 題目介紹 給出乙個迴圈公式,對於乙個整數n,當n為奇數時,n 3n 1,當n為偶數時,n n 2,如此迴圈下去直到n 1時停止。現要求對兩個整數i 900 j 1000,輸出i j之間 包括i j 的所有數進行上述迴圈時的最大迴圈次數 包括n和1 格式 ctf 指令碼 cod...
c 大數類 大數模板
分類 大數 hdoj 分別使用c 中的運算子過載的方法來實現大數之間的數 算,包括加法 減法 乘法 除法 n次方 取模 大小比較 賦值以及輸入流 輸出流的過載。並且使用這個大數模板,順利ac了hdoj上的1134這個題目的catalan數計數問題。大數模板的 如下 cpp view plain co...