【郑轻】[1752]Math Three!

文章字数:236

问题描述

问题分析

当时认为
“还是暴力~”
刚才也是以为对了……
结果一查是TL超时了……

当时是这样写的:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#include<stdio.h>
int main() {
	long long int N;
	int i;
	scanf("%lld",&N);
	for(i=1; i<N; i++) {
		if((N%(i+1))==0)
			break;
	}
	printf("%d\n",i);
	return 0;
}

然后重新写了下:
其实本质还是暴力……
但这次只到sqrt(N)
但这样会造成当N为质数时输出错误
所以还需要再加一个判定
AC打码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<math.h>
int main() {
	long long N,K;
	double L;
	scanf("%lld",&N);
	L=sqrt(N);
	for(K=1; K<=L; K++) {
		if((N%(K+1))==0)
			break;
	}
	if(K<=L)
		printf("%lld\n",K);
	else
		printf("%lld\n",N-1);
	return 0;
}

这是人家11月份的题啊!!!

题目地址:【郑轻】[1752]Math Three!

该内容采用 CC BY-NC-SA 4.0 许可协议。

如果对您有帮助或存在意见建议,欢迎在下方评论交流。

加载中...