【郑轻】[1752]Math Three!

这里写图片描述
这里写图片描述

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

当时是这样写的:

#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打码如下:

#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!

原文地址:https://www.cnblogs.com/BoilTask/p/12570043.html