Benefit UVA - 11889(已知LCM和其中一个数,求另一个数)
首先对于C不能整除A的状况肯定排除
然后得到B=C/A
然后取G=GCD(A,B)
如果G==1,那么此时B就是解
否则的话,就证明A,B,的最小公倍数肯定不是C,因为其最小公倍数是A*B/G
那么我们就去掉这个公因子,方法是A/G,B*G
即可消去两者公共的倍数,同时还可以保证A*B是一个定值
循环直到G==1为止。。。是。。。是。。是。。。挺神奇的。。。
题意借鉴自https://blog.csdn.net/libin56842/article/details/46442083
https://blog.csdn.net/just_sort/article/details/50983350
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <vector>
#include <cmath>
#define mem(a, b) memset(a, b, sizeof(a))
using namespace std;
const int maxn = , INF = 0x7fffffff;
typedef long long LL; int gcd(int a, int b)
{
return b==?a:gcd(b, a%b);
} int main()
{
int T;
cin>> T;
while(T--)
{
int a, b, c;
cin>> a >> c;
if(c % a != )
cout<< "NO SOLUTION" <<endl;
else
{
b = c / a;
if(gcd(a, b) == )
cout<< b <<endl;
else
{
while(gcd(a, b) != )
{
int temp = gcd(a, b);
a /= temp;
b *= temp;
}
cout<< b <<endl;
}
} } return ;
}
Benefit UVA - 11889(已知LCM和其中一个数,求另一个数)的更多相关文章
- 转 已知两点坐标和半径求圆心坐标程序C++
数学思想:利用圆方程和直线方程 已知两点坐标和半径求圆心坐标程序 #include <iostream> #include <fstream> #include <c ...
- NX二次开发-UFUN已知两个向量方向求夹角角度UF_VEC3_angle_between
NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_vec.h> #include <uf_ ...
- 【C语言】已知三角形三边长,求三角形面积
一. 数学基础: 已知三角形的三边,计算三角形面积,需要用到海伦公式: 即p=(a+b+c)/2 二. 算法: 输入三个边长,套用海伦公式计算面积,并输出. 可以先判断是否可以构成三角形,即任意两边之 ...
- Tree UVA - 548 已知中序遍历和后序遍历,求这颗二叉树。
You are to determine the value of the leaf node in a given binary tree that is the terminal node of ...
- 又见GCD (已知最大公约数和其中一个数求另一个数)
#include<cstdio> int f1(int a,int b) //最大公约数 { ) return b; else return f1(b,a%b); } int f2(int ...
- ACM题目————已知前序和中序求后序
#include <iostream> #include <cstring> #include <cstdio> using namespace std; ], z ...
- HDU 1710Binary Tree Traversals(已知前序中序,求后序的二叉树遍历)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1710 解题思路:可以由先序和中序的性质得到 : 先序的第一个借点肯定是当前子树的根结点, 那么在 中序 ...
- unity 已知cosA和sinA,求A
和c++中的atan2(y,x)类似,unity中有也Mathf.Atan2(y,x).
- 已知一棵完全二叉树,求其节点的个数 要求:时间复杂度低于O(N),N为这棵树的节点个数
package my_basic.class_4; public class Code_08_CBTNode { // 完全二叉树的节点个数 复杂度低于O(N) public static class ...
随机推荐
- [Lydsy1805月赛]对称数 BZOJ5361
分析: 这个题,还是蛮有趣的.考虑,如果l,r区间内的所有数出现奇数次,那么[l-1,r]的抑或和等于所得抑或和. 之后怎么维护呢,主席树维护区间抑或和,记得将每个点附上一个ull级别的随机数,之后抑 ...
- 跟我学Android NDK开发(一)
Android NDK 开发跟其它开发一样,首先需要配置好开发环境,本文以 Ubuntu系统为例介绍如何进行 Android NDK 开发环境的配置. 1. 简介 什么是 Android NDK 呢? ...
- 2015531 网络攻防 Exp1 PC平台逆向破解(5)M
2015531 网络攻防 Exp1 PC平台逆向破解(5)M 实践目标 本次实践的对象是linux的可执行文件 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串 ...
- Class does not Implement Equals——Code Correctness(代码正确性)
系列文章目录: 使用Fortify进行代码静态分析(系列文章) class does not implement equals(类未能实现Equals方法) 示例: protec ...
- mfc CIPAddressCtrl控件
知识点: CIPAddressCtrl 属性 CIPAddressCtrl 成员函数 成员函数代码测试 一.CIPAddressCtrl Class Members IsBlank Determine ...
- python 算法面试题
1.题目是:有一组“+”和“-”符号,要求将“+”排到左边,“-”排到右边,写出具体的实现方法. def StringSort(data): startIndex=0 endIndex=0 count ...
- stl源码剖析 详细学习笔记deque(2)
//---------------------------15/3/13---------------------------- self&operator++() { ++cur; if(c ...
- TensorFlow 实现线性回归
1.生成高斯分布的随机数 导入numpy模块,通过numpy模块内的方法生成一组在方程 y = 2 * x + 3 周围小幅波动的随机坐标.代码如下: import numpy as np impor ...
- Python3.7 + jupyter安装(CentOS6.5)
Python3.7 + jupyter安装(CentOS6.5) 方法一(anaconda): anaconda是一个开源的Python发行版本 包含conda,python等大量的科学包以及依赖 优 ...
- java中多态的实现机制
多态的概念: 简单来说就是事物在运行过程中存在的不同状态,即父类或接口定义的引用变量指向子类或具体实现类的实例对象.程序调用方法在运行期才进行动态绑定,而不是引用变量的类型中定义的方法. 多态存在的前 ...