/** * @brief Codeforces Round #282 (div. 2) b * @file b.cpp * @author mianma * @created 2014/12/15 9:55 * @edited 2014/12/15 9:55 * @type math * @note */#include <fstream># include <iostream> #include <cstring> #include <cmath>using namespace std; #define &NBSP;MAX (a, b) ((a) > (b) ? (a) : (b)) # Define min (A, b) ((a) > (b) ? (b) : (a)) #define abs (a) ((a) > 0 ? (a) : (0 - (a))) #define &NBSP;CLR (VEC) memset (vec, 0, sizeof (VEC)) #ifdef debugifstream in;ofstream out; #define CIN in#define COUT out#else#define Cin cin#define cout&nbsP;cout#endifint a, b, c, cnt;double cf;int main (void) { Ios_base::sync_with_stdio (0); #ifdef debug cin.open ("./in", ios::in); cout.open ("./out", ios::out); #endif CIN > > a >> b; if (a == b) { COUT << "infinity\n"; Return 0; } if (a < b) { COUT << "0\n"; return 0; } a -= b; cf = &NBSP;SQRT (double) a); c = (int) floor (cf + 0.5); cnt = 0;&nbSp; for (int i = 1; i <= c; i++) { if ( 0 == a%i) { if (a/i > b) ++cnt; if (i > b) &NBSP;++CNT;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;}&NBSP;&NBSP;&NBSP;&NBSP, #ifdef DEBUG COUT << cf << " <-> " << c << "\ n"; #endif if (cf == c) { if (0 ==&nbsP;A%C&NBSP;&&&NBSP;C&NBSP;>&NBSP;B) --cnt; } COUT << cnt << "\ n"; return 0;}
Codeforces Round #282 (Div. 2) b