简单的最大除数问题 c++ 实现抛出时间限制已超出
simple Greatest divisor problem c++ implementation throws Time-Limit Exceeded
我正在向我大学的测试人员提交代码,我的代码对于我提供的测试用例非常有效。
检查器抛出时间限制超出错误,我正在 Visual Studio 中进行测试,这与在线法官编译器完全兼容。
#include <iostream>
#include <math.h>
using namespace std;
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int i, n, gd; cin >> n;
gd = 1;
if (n > 1) {
for (i = 2; i < n; i++)
{
if (n % i == 0)
{
gd = i;
}
}
cout << gd;
}
return 0;
}
}
我找不到为什么它会引发这样的错误。谢谢
该代码只能在我的可视化工作室中工作,但无法通过测试。顺便说一下,检查器隐藏了测试用例。
与其找到最大除数,不如寻找最小的除数d
(其中d > 1
(。那么最大的除数是n/d
.
你可以用一个简单的循环来做到这一点,就像你找到第一个除数时break
s一样。循环在经过sqrt(n)
时可以停止,在这种情况下,数字是质数。
在最坏的情况下,这更快,因为它将迭代次数限制为 sqrt(n(。在d
较小的常见情况下,只需很少的操作。
相关文章:
- 使用简单类型列表实现的指数编译时间.为什么
- 是否有可能实现O(N)时间和O(1)空间解决方案,以实现C++中的字符串循环移位
- 在给定程序中降低矢量数组实现堆栈的时间复杂度有哪些不同的可能方法?
- 简单的最大除数问题 c++ 实现抛出时间限制已超出
- 长度库,其实现方式类似于C++时间的计时
- 如何实现声明功能-C 11,编译时间
- 符合C++的实现如何指示它不知道当前日期和时间?
- 内部分布式时间服务器实现
- C++标准库:实现从链表中删除恒定时间
- 在单个链接列表中恒定时间实现弹奏
- 实现区域设置格式的时间输出
- C++ 实现时钟来测量执行时间
- C++ 模板复杂图像读取类执行时间慢,声明和实现分离
- 在一段时间循环比较中实现 getline
- 主流C++编译器中 GC 实现的时间线是什么?
- 用STL堆在O(logn)时间内实现Decrease Key
- 非递归 Kosaraju 的两次传递算法实现需要很长时间才能在大型数据集上执行
- 编译时间模板`std::integral_content`counter-如何实现它
- 下面使用Map和Vector实现递归级阶遍历的时间复杂度是多少
- 如何在c++中使用boost实现与系统时间无关的计时器回调