题目链接:
题目大意:
给出两个数m,k,要求求出从1开始与m互质的第k个数
题解:
#include#include #include #include using namespace std;const int N=1e6+15;const int inf=1000000000+15;int m,k,cnt;int a[N],p[N];void getprime(int x){ cnt=0; for (int i=2;i*i<=x;i++) { if (x%i) continue; p[++cnt]=i; while (x%i==0) x/=i; } if (x>1) { p[++cnt]=x; }}int left(int x){ int sum=0; for (int i=1;i<(1< >1; int pt=left(mid); if (pt>=k) { if (pt==k) ans=mid; r=mid-1; } else l=mid+1; } printf("%d\n",ans); } return 0;}