CodeForces 1076B Divisor Subtraction 简单推导

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiang_6/article/details/89039676

思路:

n如果是偶数,那么之后的d只能是2,可以直接得到答案

如果是奇数,那可以通过一次减d,变成偶数,

或者这个数本身就是素数

#include<bits/stdc++.h>

using namespace std;
typedef long long ll;

ll n;
int main() {
    scanf("%lld", &n);
    for(ll i = 2; i*i <= n; ++i) {
        if(n%i == 0) {
            return 0*printf("%lld", (n-i)/2+1);
        }
    }
    printf("1");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/xiang_6/article/details/89039676
今日推荐