gpt4 book ai didi

c++ - 在 hackerearth 中获取 TLE

转载 作者:行者123 更新时间:2023-11-30 21:19:17 25 4
gpt4 key购买 nike

当我在 hackerearth 提交此代码时,我得到了 TLE。

任何建议我如何优化这个代码。

#include <stdio.h>
#include <stdlib.h>

int checkPrime(int);

int main() {
int a, b,
reminder,sum=0,n;

scanf("%d %d",&a,&b);

while(a <= b) {
n = a;
sum = 0;
reminder = 0;

while (n > 0) {
reminder = n % 10;
sum += reminder;
n = n / 10;
}

if(sum > 1 && checkPrime(sum) == 1 && checkPrime(a) == 1) {
printf("%d ",a);
}

++a;
}

return 0;
}

int checkPrime(int p) {

int i,flag=1;

for(i=2; i <= p / 2; i++){
if(p%i == 0) {
flag = 0;
break;
}
}

return flag;

}

Here is the problem i coded for

我如何分析这段代码并得到时间复杂度。

最佳答案

您的 checkprime 函数需要大量运行时间。它运行 N/2 次操作。

您正在对所有数字运行此操作,因此您正在运行 N*N/2 操作,这太多了。

我建议您使用更好的方法来生成素数。看看the Sieve of Eratosthenes

关于c++ - 在 hackerearth 中获取 TLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53204676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com