// AtCoder-Template.cpp : このファイルには 'main' 関数が含まれています。プログラム実行の開始と終了がそこで行われます。 // #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; #define fst first #define snd second #define FOR(i,N) for(auto i=0; i 0; --i, --cnt) #define ALL(x) x.begin(), x.end() /* clang-format off */ template struct _vec { using type = vector::type>; }; template struct _vec { using type = T; }; template using vec = typename _vec::type; template vector make_v(size_t size, const T& init) { return vector(size, init); } template auto make_v(size_t size, Ts... rest) { return vector(size, make_v(rest...)); } template inline void chmin(T& a, const T& b) { if (b < a) a = b; } template inline void chmax(T& a, const T& b) { if (b > a) a = b; } /* clang-format on */ int main() { #ifdef DEBUG ifstream ifs("in.txt"); cin.rdbuf(ifs.rdbuf()); #endif ll l, r, n; cin >> l >> r >> n; auto getNum = [](auto N, auto p, auto q) { // N以下の数で、pで割ったあまりがqとなるものの個数。 // q を引いて、 pで割る? if (N == 0) return 0LL; return (N - q) / p + (q>=1); // q == 0 だと、 // 1 2, ... p .... np ... np+2 とかになって、これは // / /q = 1 だと // 1 ,2 3 ,,.. p+1, .. nP+1 ... np+1, np+2 になるけど、。 // 2 ,3 , ... p + 1 ... np+3 を見る? // 0, 1, 2 ,. ... p nP np }; FOR(i, n) { cout << getNum(r, n, i) - getNum(l - 1, n, i) << endl; } return 0; }