My Solution
读懂题意很重要嘿嘿, 就是先每个1个数删去一个数, 然后
在剩余的数字里 每隔2个数删除一个数, 然后又在剩余的数里每隔3个数删除一个数, 一次类推
#include
#include
using namespace std;
typedef long long LL;
const int maxn = 1e9 + 8;
bool m[maxn];
int main()
{
#ifdef LOCAL
freopen("a.txt", "r", stdin);
//freopen("b.txt", "w", stdout);
int T = 1;
while(T--){
#endif // LOCAL
int cnt, r, l;
scanf("%d%d", &l, &r);
int x = 2;
while(r/x){
r = r - r/x;
x++;
}
x = 2;
l--;
while(l/x){
l = l - l/x;
x++;
}
printf("%d", r - l);
#ifdef LOCAL
printf("n");
}
#endif // LOCAL
return 0;
}
非特殊说明,本博所有文章均为博主原创,未经许可不得转载。
https://www.prolightsfxjh.com/
Thank you!
------from ProLightsfx
非特殊说明,本博所有文章均为博主原创,未经许可不得转载。
如经许可后转载,请注明出处:https://prolightsfxjh.com/article/uestc-2016-summer-training-4-div-2-b/
共有 0 条评论