2017-10-13 5 views
-3

コードのGCDとLCMを検索するコードを作成しましたが、コーデックフージョンで送信すると制限時間を超えています。どのように正常に提出する?成功しましたが、コーデックフでアップロード中に制限時間を超過しました

#include <iostream> 
using namespace std; 

int main() { 

int long long n1, n2, hcf,lcm,tc; 
cin>>tc; 
while(tc--){ 
cin >>n1>>n2; 
if (n2 > n1) { 
    int temp = n2; 
    n2 = n1; 
    n1 = temp; 
} 
for (int i = 1; i <= n2; ++i) { 
    if (n1 % i == 0 && n2 % i ==0) { 
     hcf = i; 
     lcm = (n1*n2)/hcf; 
    } 
} 
cout<<hcf<<" "<<lcm;  
} 
return 0; 
} 
+1

これは競争ですので、あまりにもあなたを助けることの精神ではないようです。しかし、問題はあなたのアルゴリズムが非効率で、サイトが許すよりも時間がかかります(おそらく非常に大きな数でテストします)。ウィキペディアでGCDアルゴリズムを調べて、やり直してください。 –

+1

コードが機能しているので、[codereview.se]に投稿してみてください。 –

答えて

0

nは、非常に多数の場合(I = 1をint型;私< = N2; ++ i)は、あなたのためのは永遠にかかります。 次の簡単なコードを実行してみてください。

unsigned int n2 = 4294966296; 
for (unsigned int i = 1; i <= n2; ++i) 
{ 
    int a = i % 10; 
} 

std::cout<<"its done"; 

コンピュータの速度によっては時間がかかることがあります。

+0

ありがとう! – omkarlanghe

関連する問題