如何让这串代码耗时变短#include<bits/stdc++.h> using namespace std; int main(){ unsigned long long n,m,l=1; cin >> n>>m; for(unsigned long long i = 2; i <=); ){ if(n%i==0&&m%i==0){ l*=i; n/=i; m/=i; cout<<l<<endl; } else{ i++; } } cout<<l<<endl; return 0; }
时间: 2023-07-14 14:00:03 浏览: 176
要优化代码的执行时间,可以使用以下方法:
1. 避免使用 `#include <bits/stdc++.h>`,这是一个不推荐使用的头文件,它包含了大量的标准库,可能会导致编译时间变长。可以仅包含所需的标准库头文件,比如 `#include <iostream>`。
2. 在循环中,可以将 `i` 的循环范围缩小为 `min(n, m)`,这样可以减少循环次数。
3. 当找到一个公因数时,可以将 `n` 和 `m` 分别除以该公因数,这样可以避免重复计算公因数。
4. 可以在循环中添加一个判断条件,当 `n` 或 `m` 的值小于等于 1 时,可以提前结束循环,因为已经找到了最大公因数。
以下是优化后的代码:
```cpp
#include <iostream>
unsigned long long calculateMaxCommonDivisor(unsigned long long n, unsigned long long m) {
unsigned long long l = 1;
unsigned long long i = 2;
while (i <= std::min(n, m)) {
if (n % i == 0 && m % i == 0) {
l *= i;
n /= i;
m /= i;
std::cout << l << std::endl;
} else {
i++;
}
if (n <= 1 || m <= 1) {
break;
}
}
return l;
}
int main() {
unsigned long long n, m;
std::cout << "请输入 n 的值:";
std::cin >> n;
std::cout << "请输入 m 的值:";
std::cin >> m;
unsigned long long maxCommonDivisor = calculateMaxCommonDivisor(n, m);
std::cout << "最大公因数为:" << maxCommonDivisor << std::endl;
return 0;
}
```
通过这些优化措施,代码的执行时间会变短。
阅读全文