CodeForces 1076B Divisor Subtraction 简单推导

思路:

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;
}

 

上一篇:CodeForces - 1025B Weakened Common Divisor


下一篇:第18课 捕获机制及陷阱