/*
if n = a*b + r and gcd(n, r) = 1 then
ans = max{a, b} (a, b <= n/2)
if n = 2p + 1 then
ans = p;
else n = 2p
let p = 2q+r
if r=0 then
n = 4q =2(2q - 1) + 2, gcd(n, 2q-1) = gcd(2q-1, 2) =1, ans = 2q-1 = p-1-r
else then
n= 4q+2 = 2(2q-1) + 4, gcd(n, 2q-1) = gcd(2q-1, 4) =1, ans = 2q-1 = p-1-r
*/
import java.io.*;
import java.util.*;
import java.math.BigInteger;
public class Solution {
final static BigInteger two = BigInteger.valueOf(2);
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BigInteger n = new BigInteger(in.readLine().trim());
BigInteger[] p = n.divideAndRemainder(two);
if (p[1].intValue() == 1) {
System.out.println(p[0]);
}
else {
BigInteger[] q = p[0].divideAndRemainder(two);
System.out.println(p[0].subtract(q[1]).subtract(BigInteger.ONE));
}
}
}
sgu 193
最新推荐文章于 2018-12-01 15:22:00 发布