c语言,什么会导致超过时间限制?
答案:2 悬赏:60 手机版
解决时间 2021-12-23 14:43
- 提问者网友:富士山上尢
- 2021-12-22 16:21
很多时候都遇到了这种情况,希望有人做一个总结?
最佳答案
- 五星知识达人网友:行雁书
- 2021-12-22 16:54
算法的时间复杂度大。解决方法:重新构思新的算法。也就是说用另一种方法去实现你的程序。
全部回答
- 1楼网友:毛毛
- 2021-12-22 17:42
从你的程序可以看出,是在求"从键盘输入一个大于2的整数k,输出不大于k的最大的素数。"你的程序尽管也可找出来,但选择的算法效率太低,你是从小到大逐一判断,然后取其最大的,这种方法需先求出不大于k的所有的素数,效率当然低了。正解是从大到小逐一判断,遇到的第一个素数即为不大于k的最大素数。程序可如下
#include
#include
void main( ) {
int i, k, n, f, s;
scanf("%d", k);
for(n = 0, f = k; !n && (f > 1); f--)
{
for(n = 1, i = 2, s = sqrt(f); n && (i <= s); i++)
if(f % i == 0) n = 0;
}
printf("the max prime number is %d\n", f);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯