成功执行但在codechef上传时超出了时间限制

时间:2017-10-13 13:39:15

标签: c++

我已经编写了一个代码来查找数字的GCD和LCM,但每当我提交codechef时,它都会超出时间限制。如何成功提交?

#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 个答案:

答案 0 :(得分:0)

如果n是一个非常大的数字,你的 for(int i = 1; i&lt; = n2; ++ i)将永远存在。 试着按照简单的代码运行。

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

std::cout<<"its done";

根据计算机的速度,可能需要永久。