ABC048_B
a以上b以下の数字のうちxで割り切れるものの数を答える.
for文でループで解くのは一重ループだとしてもb = 10^18とか与えられるとキツイ.
上図で赤はxで割り切れる数
上段 = 中段 - 下段で考えた.
aがxで割り切れた場合はaの1つ分を足す必要がある.
#include <bits/stdc++.h> using namespace std; #define ll long long int int main() { ll a,b,x; cin>>a>>b>>x; cout<<b/x - a/x + !(a%x) <<endl; return 0; }