pku2773 Happy 2006

    技术2022-05-20  47

    判断与N第K个互质的数,暴力判断前N个数中与K互质的数,N之后的数都是N之前的加上N的倍数。 #include <iostream> using namespace std; int prime[1000000]; int gcd(int a,int b) { if(!a || !b) return a>b?a:b; for(int t;t=a%b;a=b,b=t) ; return b; } int main() { int m,k,i; while(cin>>m>>k) { int t=0; for(i=1;i<=m;i++) if(gcd(m,i)==1) prime[++t]=i; if(k%t==0) cout<<m*(k/t-1)+prime[t]<<endl; else cout<<m*(k/t)+prime[k%t]<<endl; } return 0; }

     


    最新回复(0)