知识点
符号,公式
这是向下取整符号,如:[9999.9999]=9999,[-1.5]=-1
1~n被k整除个数:0~n被k整除个数:
今天的内容不会涉及高中的集合,会用图片讲解
维恩图
题目描述
1.求
(
)中n只能被3或5中一个数整除的数的个数
2.求
(
)中n只能被x或y(
)中一个数整除的数的个数
思路&代码
1
直接套公式
+1
#include<bits/stdc++.h> using namespace std; #define ll long long int main(){ ll n; cin>>n; cout<<n/3+n/5-n/15+1; return 0; }
2
先分析一下x=8,y=12的情况Y表示能整除
x y 8 Y 9 10 11 12 Y 13 14 15 16 Y 17 18 19 20 21 22 23 24 Y Y
我们知道lcm(8,12)=24 因此公式为:
#include<bits/stdc++.h> using namespace std; #define ll long long ll f(ll x,ll y){ if(y==0) return x; return f(y,x%y); } int main(){ ll x,y,n; cin>>x>>y>>n; if(x<y){ int temp; temp=x; x=y; y=temp; } ll a=f(x,y); cout<<(n/x)+(n/y)-n/(x*y/a); return 0; }