C++ 在Codechef挑战中获得TLE

C++ 在Codechef挑战中获得TLE,c++,C++,请告诉我为什么我得到这个问题的最后一个子任务的tle。 这是我的密码 您的代码中没有错误..但是超出了时间限制 因为对于最后一个子任务,您的算法在O(sqrt(n))时间内运行。 因此,总体而言,它运行了(T*sqrt(n))次。现在这里是T=10^6和N=5*10^6 sqrt(n)~2*10^3几乎有2*10^3*10^6或2*10^9操作 这需要>1秒。这就是为什么您会得到TLE 请说得更清楚些,你的问题是什么。问题是:给定一个数字n,你必须找出它是否可以是直角三角形的斜边。当一个数可被4

请告诉我为什么我得到这个问题的最后一个子任务的tle。 这是我的密码

您的代码中没有错误..但是超出了时间限制 因为对于最后一个子任务,您的算法在O(sqrt(n))时间内运行。 因此,总体而言,它运行了
(T*sqrt(n))
次。现在这里是
T=10^6
N=5*10^6
sqrt(n)~2*10^3
几乎有
2*10^3*10^6
2*10^9
操作 这需要
>1秒
。这就是为什么您会得到
TLE


请说得更清楚些,你的问题是什么。问题是:给定一个数字n,你必须找出它是否可以是直角三角形的斜边。当一个数可被4k+1形式的素数整除时,它可以表示为两个数的平方和。这就是我在代码中实现的。我的代码给出了所有其他测试用例的正确答案,除了最后一个给出tle的测试用例。我想知道我的代码出了什么问题,因为循环并没有在给定的时间内终止。