题意:
问1-n中有多少个能被2-10的所有数整除
题解:
求出2-10的最小公倍数x,就是求1--n中多少个数能被x整除了...
#include<stdio.h>
typedef long long ll;
ll gcd(ll a,ll b)
{
if(!b)
{
return a;
}
return gcd(b,a%b);
}
ll lcm(ll a,ll b)
{
return a/gcd(a,b)*b;
}
int main()
{
ll n,tp=2;
for(ll i=3;i<=10;++i)
{
tp=lcm(tp,i);
}
while(~scanf("%lld",&n))
{
printf("%I64d\n",n/tp);
}
return 0;
}