这道题不是让求互质数的个数,那就简单。只是让判断是否是互质数,互质数的判断方法是两个数的最大公约数是1,那么两个数就互质。
因此这道题我们只需要判断两个数是否互质,不互质我们就进行右移。
#include<bits/stdc++.h>
using namespace std;
int ans;
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
void swap(string& s)
{
char temp=s[0];
for(int i=0;i<s.size()-1;i++)
{
s[i]=s[i+1];
}
s[s.size()-1]=temp;
}
int main()
{
string a,b;cin>>a>>b;
for(int i=0;i<a.size();i++)
{
if(gcd(stoi(a),stoi(b))==1)
{
cout<<ans;
return 0;
}
ans++;
swap(a);
swap(b);
}
cout<<-1;
return 0;
}