蓝桥练习03-gcd

代码骑士
优质创作者: 游戏开发技术领域
2023-04-07 10:42:37

题源:http://www.acmicpc.sdnu.edu.cn/problem/show/1132

Description

有三个正整数a,b,c(0 < a,b,c < 10^12),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。

Input

第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b。

Output

输出对应的c,每组测试数据占一行。

Sample Input

2
6 2
12 4

Sample Output

4
8

Source

SDNU ACM-ICPC 2013省队选拔赛

 

思路:

关键词:gcd、暴力破解

内容:用欧几里得算法辗转相除求a和c的最大公约数=b,使用暴力迭代寻找c,如果找到等于b的最大公约数后,判断是否c和b相等,如果相等则跳过此次循环,进入下个循环继续寻找符合条件的c。

代码:

#include<bits/stdc++.h>
#include<iostream>
#define ll long long
using namespace std;

ll gcd(ll a,ll c){
	return c==0?a:gcd(c,a%c);
}



int main(){
	//cout<<gcd(6,2)<<endl; 
	int n;
	ll a,b,c;
	cin>>n;
	while(n--){
		cin>>a>>b;
		for(ll i=1;i<10000;i++){
			ll res = gcd(a,i);
			if(res == b){
				if(i==b)
					continue;
				else{
					cout<<i<<endl;
					goto l;//开门 	
				}
			}
		} 
		l:;//出门 
	}
	
	
	return 0;
}

输出:

 

...全文
251 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5

社区成员

发帖
与我相关
我的任务
社区描述
考研408:数据结构、计算机组成原理、操作系统、计算机网络
学习方法考研面试 其他
社区管理员
  • 代码骑士
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧