题意:
     给出最小公倍数LCM(A,B) = C中的A,C求最小的B.

思路:
      lcm=(a*b)/gcd,把等号两侧同时除以a得到lcm/a=b/gcd左侧是已知的,右侧的gcd是a的因子中的一个,直接枚举a的所有因子找到答案就行了。

#include<math.h>
#include<stdio.h>
#include<algorithm>

using namespace std;

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

long long yz[10000] ,yzs;

int main ()
{
    long long a ,b ,c,cc ,i;
    int t;
    scanf("%d" ,&t);
    while(t--)
    {
        scanf("%lld %lld" ,&a ,&c);
        if(c % a)
        {
            printf("NO SOLUTION\n");
            continue;
        }
        cc = c;
        c = c / a;
        long long n = (long long)sqrt(a);
        yzs = 0;
        for(i = 1 ;i <= n ;i ++)
        if(a % i == 0) yz[++yzs] = i ,yz[++yzs] = a / i;
        sort(yz + 1 ,yz + yzs + 1);
        long long Ans = -1;
        for(i = 1 ;i <= yzs ;i ++)
        {
            long long now = yz[i];
            b = c * now;
            if(a * b / gcd(a ,b) == cc)
            {
                Ans = b;
                break;
            }
        }
        if(Ans == -1)  printf("NO SOLUTION\n");
        else printf("%lld\n" ,Ans);
    }
    return 0;
}

UVA11889(给出lcm(A,B)=C中的AC求最小的B)相关推荐

  1. 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数

    给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数.            1.在文件中至少存在这样一个数?            2.如果有足够的内存,如何处理? ...

  2. 编写一个方法,数出从0到n中数字2出现了几次?

    2019独角兽企业重金招聘Python工程师标准>>> 编写一个方法,数出从0到n中数字2出现了几次? 例如:如果n为20,那么0,1,2,3,4,5,6,7,8,9,10,11,1 ...

  3. 打印出所有的 info.plist 中的 keys、values

    打印出所有的 info.plist 中的 keys.values // get all keys and values in info.plist NSBundle* mainBundle = [NS ...

  4. python判断一个或者多个字符串,是否出现在一段话中

    python判断一个或者多个字符串,是否出现在一段话中 要判断一段话中是否有几个字符串,只要一个出现就为True,刚开始想用map函数,后来发现也挺麻烦. 查了一些资料,发现用 any比较好 比如 p ...

  5. 对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的边。说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度

    对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的 边.说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度

  6. android中弹出窗口,如何在Android中创建弹出窗口(PopupWindow)

    如何制作一个简单的Android弹出窗口 这是一个更完整的例子.这是一个补充性答案,涉及一般情况下创建弹出窗口的过程,而不一定是OP问题的具体细节.(OP要求取消按钮,但这不是必需的,因为用户可以在屏 ...

  7. 1. 定义方法,求出指定元素在数组中出现的次数.

    package Day05;import java.util.ArrayList;/*** 3.* c* 1. 定义方法,求出指定元素在数组中出现的次数.* 2. 定义方法,统计数组中出现次数为1的元 ...

  8. 给定N个加号,M个减号以及N+M+1个整数,A1+A2+...+Am+An+1,小明想知道在所有由这n个加号,M个减号以及N+M+1个整数凑出的合法的后缀表达式中,结果最大的是哪一个?

    问题;给定N个加号,M个减号以及N+M+1个整数,A1+A2+-+Am+An+1,小明想知道在所有由这n个加号,M个减号以及N+M+1个整数凑出的合法的后缀表达式中,结果最大的是哪一个? 请输出这个最 ...

  9. C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。

    /*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数.如果不在数组中,打印"not found".*/#include<stdio ...

最新文章

  1. angular2-baidu-map网站中使用百度地图
  2. Qt/QML 窗口阴影边框实现
  3. 爬虫实战:CentOS安装JDK,部署Java程序,利用screen使其保持在前台运行
  4. gcc编译器命令使用详解
  5. linux文件句柄满了 现象_Linux 离奇磁盘爆满,如何解决? | 原力计划
  6. php是单线程吗,php语言是单线程吗?
  7. PIL保存二维numpy数组(2,2)为灰度图和RGB图
  8. threejs 模型隐藏后不显示_教师资格证面试报名后显示“待审核”?不做这一步报名白费!...
  9. 100道MySQL数据库面试题解析
  10. 如何检查电脑是否已经安装Flash Player
  11. cc9.3 indesign_Adobe InDesign CC2019
  12. 电脑连接SONY蓝牙耳机没有声音
  13. sql解决数据库日志文件过大的问题
  14. c语言互不相同删除法,GitHub - MXHDOIT/C_Practice: 100道C语言经典习题
  15. 表格数据按行为单位查重
  16. JAVA基于局域网的聊天室系统(源代码+论文)
  17. 简单的登录注册连接数据库
  18. Android平台开发-Android keypad map-Android按键事件
  19. jupyter notebook修改字体
  20. Fibonacci 数列和 Lucas 数列的性质、推论及其证明

热门文章

  1. 细数Android 7.0“牛轧糖”的五大缺陷:不支持悬浮窗口
  2. Linux常用系统管理命令(top、free、kill、df)
  3. ArcGIS实现在线与线交叉处打断线(批量)
  4. 九维 Addon for SBO 功能说明及新版软件下载
  5. Leetcode24.Swap Nodes in Pairs两两交换链表中的节点
  6. Map集合的几种遍历方式
  7. 查询数据(使用聚合函数,还是单表)
  8. 用.NET SqlBulkCopy类执行批量复制
  9. 自己挖的坑自己填--JVM报内存溢出
  10. 正则表达式需要转义的字符