原題鏈結
原理:最大公約數:遞迴 歐幾里得演算法
最小公倍數:得到a,b的最大公約數d 最小公倍數=a/d*b;
#include
#include
intgcb
(int a,
int b)
//求最大公約數
intmain()
printf
("%d\n"
,d);}}
return0;
}
#include
#include
#include
struct bign};
bign change
(char str)
//將整數轉化為bign
return a;
}int
compare
(bign a,bign b)
return0;
}}bign add
(bign a,bign b)
if(carry!=0)
return c;
}bign sub
(bign a,bign b)
c.d[c.len++
]=a.d[i]
-b.d[i];}
while
(c.len-
1>=
1&&c.d[c.len-1]
==0)//去除最高位 同時至少保留一位最低位
return c;
}bign multi
(bign a,
int b)
//高精度與高精度的乘法
while
(carry!=0)
//乘法的進製可能不只一位
}bign divide
(bign a,
int b,
int& r)
}//處理高位0
while
(c.len-
1>=
1&&c.d[c.len-1]
==0)return c;
}void
printf
(bign a)
}int
main()
else
printf
(sub
(a,b));
return0;
}
演算法很美之數學問題
描述 今天我們要認識一對新朋友,alice與bob。alice與bob總是在進行各種各樣的比試,今天他們在玩乙個取石子的遊戲。在這個遊戲中,alice和bob放置了n堆不同的石子,編號1 n,第i堆中有a i 個石子。每一次行動,alice和bob可以選擇從一堆石子中取出任意數量的石子。至少取1顆,...
演算法筆記 簡單數學問題的題解
題目描述 乙個正整數有可能可以被表示為n 109 n 2 個連續正整數之和,如 15 1 2 3 4 5 15 4 5 6 15 7 8 根據輸入的任何乙個正整數,找出符合這種要求的所有連續正整數序列。輸入格式 乙個正整數。輸出格式 輸出符合題目描述的全部正整數序列,每行乙個序列,每個序列都從該序列...
2018 6 18 數學問題
define crt secure no deprecate 求正整數n的質因數的個數。120 2 2 2 3 5 所以最後輸出時5 10 9 n至多只存在乙個大於sqrt n 的素因數 這裡只需要篩選到100000就可以 通過素數表,不斷試除,最後求出各個冪指數的和 include 素數表找到10...