容斥原理+组合数学。。

#include<cstdio>
#define ll long long
using namespace std;
int main()
{
	ll n;
	scanf("%lld",&n);
	ll ans = 0;
	ans+=n/2;
	ans+=n/3;
	ans+=n/5;
	ans+=n/7;
	ans-=n/2/3;
	ans-=n/2/5;
	ans-=n/2/7;
	ans-=n/3/5;
	ans-=n/3/7;
	ans-=n/5/7;
	ans+=n/2/3/5;
	ans+=n/2/3/7;
	ans+=n/3/5/7;
	ans+=n/2/5/7;
	ans-=n/3/5/7/2;
	printf("%lld\n",n-ans);
	return 0;
}