#include <iostream>
using namespace std;
int main() {
int a, b, g;
cin>>a>>b;
for(int i=1;i<=a;i++){
if ((a%i)==0 && (b%i)==0){
g=i;
}
}
cout<<g<<endl;
}
以上是我的解法
但一直出現TLE
請問一下要怎麼修改才不會出現TLE?
謝謝 ^_^
#include
using namespace std;int main() {
int a, b, g;
cin>>a>>b;
for(int i=1;i<=a;i++){
if ((a%i)==0 && (b%i)==0){
g=i;
}
}
cout<}
以上是我的解法
但一直出現TLE
請問一下要怎麼修改才不會出現TLE?
謝謝 ^_^
他限制時間1s,我之前用這個方法C++有過,看來是有修正測資,或是減少時間(忘記XD
你可能要用遞迴的方式,去推算,以下提供副程式
void gcd(int a,int b){ if(!b){ printf("%d",a); } else{ gcd(b,a%b); } }
基本上使用窮舉法如果測資到億或十億,都會非常執行非常久,質因數分解法或短除法都會比較快。
基本上使用窮舉法如果測資到億或十億,都會非常執行非常久,質因數分解法或短除法都會比較快。
您好,我是利用輾轉相除法求得最大公因數,
請問用短除法要怎麼知道要除多少?
質因數分解可能要先建質數表,然後找公因數,感覺會慢一些
我自己的測試結果(4ms, 88KB),請問您的方法會比較快ㄇ?
基本上使用窮舉法如果測資到億或十億,都會非常執行非常久,質因數分解法或短除法都會比較快。
您好,我是利用輾轉相除法求得最大公因數,
請問用短除法要怎麼知道要除多少?
質因數分解可能要先建質數表,然後找公因數,感覺會慢一些
我自己的測試結果(4ms, 88KB),請問您的方法會比較快ㄇ?
我是用質因數分解法寫幾乎都是1x ms,所以你放心4ms很快,輾轉應該是最快的方法。
基本上使用窮舉法如果測資到億或十億,都會非常執行非常久,質因數分解法或短除法都會比較快。
您好,我是利用輾轉相除法求得最大公因數,
請問用短除法要怎麼知道要除多少?
質因數分解可能要先建質數表,然後找公因數,感覺會慢一些
我自己的測試結果(4ms, 88KB),請問您的方法會比較快ㄇ?
我是用質因數分解法寫幾乎都是1x ms,所以你放心4ms很快,輾轉應該是最快的方法。
thanks