/* -*- coding: utf-8 -*- * * 648.cc: No.648  お や す み  - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ /* typedef */ typedef long long ll; /* global variables */ /* subroutines */ /* main */ // x(x+1)/2 = n -> x(x+1)=2n int main() { ll n; scanf("%lld", &n); ll n2 = n * 2; ll x0 = 1, x1 = 2000000000; while (x0 + 1 < x1) { ll x = (x0 + x1) / 2; if (x * (x + 1) <= n2) x0 = x; else x1 = x; } //printf("x0=%lld\n", x0); if (x0 * (x0 + 1) == n2) printf("YES\n%lld\n", x0); else puts("NO"); return 0; }