题意:给你n种颜色和m个小球,问你有多少种不同的方案!
分析:作为模板。。
代码实现:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> using namespace std; int n, m; int gcd(int a, int b) { b = b % a; while (b) { a = a % b; swap(a, b); } return a; } int main() { while (scanf("%d%d", &n, &m), n | m) { int ans = 0; for (int i = 1; i <= m; i++) ans += pow(n, gcd(i, m)); if (m & 1) ans += m * pow(n, m / 2 + 1); else ans += m / 2 * pow(n, m / 2) + m / 2 * pow(n, m / 2 + 1); ans /= m * 2; printf("%d ", ans); } return 0; }