整除
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
求1到n范围内能被 5 或 6 或 8 整除的数的个数。
Input
多组数据,处理到文件结尾。
每行输入一个n;
Output
输出结果,每个结果占一行。
Example Input
1000
Example Output
400
Hint
1到n被6整除数的个数为n/6(取整)。
Author
von
1、简单容斥原理
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int flag = 0;
flag = n/6 + n/5 + n/8 - n/30 - n/40 - n/24 + n/120;//因为有重复,所以减去了n/30(5,6的最小公倍数),40,24,又因为多减了
//所以加上5,6,8 的最小公倍数数量 n/120;
cout<<flag<<endl;
}
return 0;
}