1215 - Finding LCM
 

LCM is an abbreviation used for Least Common Multiple in Mathematics. We say LCM (a, b, c) = L if and only if L is the least integer which is divisible by a, b and c.

You will be given a, b and L. You have to find c such that LCM (a, b, c) = L. If there are several solutions, print the one where c is as small as possible. If there is no solution, report so.

Input

Input starts with an integer T (≤ 325), denoting the number of test cases.

Each case starts with a line containing three integers a b L (1 ≤ a, b ≤ 106, 1 ≤ L ≤ 1012).

Output

For each case, print the case number and the minimum possible value of c. If no solution is found, print 'impossible'.

Sample Input

Output for Sample Input

3

3 5 30

209475 6992 77086800

2 6 10

Case 1: 2

Case 2: 1

Case 3: impossible

题意:lcm(a,b,c)=L;现已知a,b,L的值,求是否存在c满足lcm(a,b,c)=L。

::首先求出a,b的最小公倍数m,则c必包含因子t=L/m;

令g=gcd(c,m);

假设c=t,c*m/g=L,当且仅当gcd(c,m)=1等式成立;

如果gcd(c,m)>1;

那么令(c*g)*(m/g)/gcd(c*g,m/g)=L;当且仅当gcd(c*g,m/g)=1;

如果gcd(c*g,m/g)>1重复上述操作;

例:a=2,b=3,L=12;

则m=6,L=12,t=2;

令c=t;判断gcd(6,2)==2,令c=c*2(==4),m=m/2(==3)

gcd(c,m)==1,故c=4;

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>

using namespace std;
typedef long long ll;

ll gcd(ll a, ll b)
{
if(a < b)
swap(a,b);

return b == 0 ? a : gcd(b, a%b);

}
ll lcm(ll a, ll b)
{
return a / gcd(a, b) * b;
}
int main()
{
int T, cas;
ll a, b, l;
scanf("%d", &T);

cas = 0;

while(T--)
{
cas++;

scanf("%lld%lld%lld", &a, &b, &l);

ll m = lcm(a, b);

ll c = l / m;

if(m > l || l % m != 0)
{
printf("Case %d: impossible\n",cas);
continue;
}

ll g = gcd(c, m);
if(c != 1)
{
while(g != 1)
{
c *= g;
m /= g;
g = gcd(c, m);

}

}

printf("Case %d: %lld\n", cas, c);

}
return 0;
}

1215 - Finding LCM的更多相关文章

  1. LightOj 1215 - Finding LCM(求LCM(x, y)=L中的 y )

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1215 题意:已知三个数a b c 的最小公倍数是 L ,现在告诉你 a b  L 求最 ...

  2. LightOj 1215 Finding LCM

    Discription LCM is an abbreviation used for Least Common Multiple in Mathematics. We say LCM (a, b, ...

  3. LOJ Finding LCM(math)

    1215 - Finding LCM Time Limit: 2 second(s) Memory Limit: 32 MB LCM is an abbreviation used for Least ...

  4. Finding LCM LightOJ - 1215 (水题)

    这题和这题一样......只不过多了个数... Finding LCM LightOJ - 1215 https://www.cnblogs.com/WTSRUVF/p/9316412.html #i ...

  5. Finding LCM (最小公倍数)

    Finding LCM Time Limit: 2000MS   Memory Limit: 32768KB   64bit IO Format: %lld & %llu [Submit]   ...

  6. lightoj 1215

    lightoj 1215 Finding LCM 链接:http://www.lightoj.com/volume_showproblem.php?problem=1215 题意:已知 a, b, l ...

  7. 专题[vjudge] - 数论0.1

    专题[vjudge] - 数论0.1 web-address : https://cn.vjudge.net/contest/176171 A - Mathematically Hard 题意就是定义 ...

  8. LightOj 1236 - Pairs Forming LCM (分解素因子,LCM )

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1236 题意:给你一个数n,求有多少对(i,  j)满足 LCM(i, j) = n, ...

  9. [POJ 2429] GCD & LCM Inverse

    GCD & LCM Inverse Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10621   Accepted: ...

随机推荐

  1. dfs - 卡一个无符号长整形

    Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal repr ...

  2. spring boot 集成apollo 快速指南

    目前市面上流行的三大配置中心框架:Spring CLoud Config .Alibaba Nacos 以及携程apollo, 我们相应架构组号召,就使用Apollo吧. Work Flow 简单解释 ...

  3. Nginx作为负载均衡——实战演练

    配置语法 Syntax:upstream name {...} Default:—— Context:http 演示 准备两台虚拟主机192.168.96.188.192.168.96.188 在18 ...

  4. 鉴于崔庆才大大的对于 beautifulsoup 的再理解

    源地址看 soups = BeautifulSoup(html) soup = BeautifulSoup(open('index.html')) print soup.prettify() Tag通 ...

  5. docker安装的gitlab的备份与恢复

    1.对docker容器安装gitlab备份 1) 查看容器id docker ps 2) 将容器备份成镜像文件 docker commit -a 'James' -m 'gitlab_backup' ...

  6. mysql 注入问题

    1.实质 MySql语句是用户自行拼接的字符串 2.例子 import pymysql # 获取用户输入信息 username = input("请输入用户名:") pwd = i ...

  7. vue计算属性例子

    不使用计算属性 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  8. 创建Account控制器 安全性与收尾工作 精通ASP-NET-MVC-5-弗瑞曼

  9. Vue+elementUI 自定义动态数据菜单导航组件实现展开收缩+路由跳转router-view渲染数据 路由跳转到同一个页面带参数ID 自动刷新数据

    准备:导入ElementUI 看官网教程 数据准备:JSON数据转换成树状 参考文章: JS实现 JSON扁平数据转换树状数据 后台我拿的数据是这样的格式: [ {id:1 , parentId: 0 ...

  10. JS-01-js的三种引入方式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...