2023年码蹄杯3赛D题 小码哥教数学 题型:数学 判断互质数

42 阅读1分钟

码题集OJ-小码哥教数学 (matiji.net)

这道题不是让求互质数的个数,那就简单。只是让判断是否是互质数,互质数的判断方法是两个数的最大公约数是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;
}

image.png