题目大意是:输入A,B,N,求[A,B]区间内与N互质的数的个数
#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
long long a,b;
int k;
vector<int> x;
void getprime(int n)
{
x.clear();
for(int i=2; i*i<=n; ++i)
if(n%i==0)
{
x.push_back(i);
n/=i;
while(n%i==0) n/=i;
}
if(n!=1) x.push_back(n);//这个需要注意
}
long long solve(long long n,long long b)
{
//求n和区间[1,b]
long long ans=b;
for(int i=1; i<(1<<x.size()); ++i)
{
int cnt=0,k=1;
for(int j=0; j<x.size(); ++j)
if(i&(1<<j))
++cnt,k*=x[j];
if(cnt&1) ans-=b/k;
else ans+=b/k;
}
return ans;
}
int main()
{
int