Fafa and his Company [ Codeforces Round #465 (Div. 2) A ]
問題
ある会社の社員数 n が与えられる。
この中から i 人選んでチームリーダーとし、残りの n-i 人の社員をそれぞれのチームリーダーに従属させる。
全てのチームリーダーが同じ人数の社員を持てるような i の選び方は何通りあるか。
考察
i 人のチームリーダーで n-i 人を均等に分けられればいいのだから、n-i を i で割り切れるかどうか試せばよいです。
n<=10^5 なので、全探索が可能です。
下記のコードでは、i の上限を n/2 として探索しています(i が n-i 以上になっては n-i を i で割り切れないから)。
コード
void solve (FastScanner in, PrintWriter out) { int n = in.nextInt(); int ans = 0; for (int i=1; i<=n/2; i++) { if ((n-i)%i == 0) ans++; } out.println(ans); }