• HDU 5974 GCD数论


    A Simple Math Problem

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 729    Accepted Submission(s): 177


    Problem Description

    Given two positive integers a and b,find suitable X and Y to meet the conditions:
    X+Y=a
    Least Common Multiple (X, Y) =b
     
    Input
    Input includes multiple sets of test data.Each test data occupies one line,including two positive integers a(1≤a≤2*10^4),b(1≤b≤10^9),and their meanings are shown in the description.Contains most of the 12W test cases.
     
    Output
    For each set of input data,output a line of two integers,representing X, Y.If you cannot find such X and Y,output one line of "No Solution"(without quotation).
     
    Sample Input
    6 8 798 10780
     
    Sample Output
    No Solution 308 490
     
    题意:
    求一组X,Y使得
    X+Y==a
    lcm(X,Y)== b
    HIn:
     
     

    所以就解方程。

    #include<bits/stdc++.h>
    #define LL long long
    using namespace std;
    LL aa,bb,l;
    LL gcd(LL a,LL b){return b==0?a:gcd(b,a%b);}
    void solve(LL a,LL b,LL c){
        LL delta=b*b-4*a*c;
        if(delta<0){
            cout<<"No Solution"<<endl;
            return;
        }
        
        delta=sqrt(delta);
    
        LL i,j;
        i=(-1*b+delta)/2;
        j=-1*b-i;
        
        if(i>j) swap(i,j);
        
        if(i*l+j*l==aa&&i*j*l==bb)
             cout<<i*l<<' '<<j*l<<endl;
        else 
            cout<<"No Solution"<<endl;
    }
    int main(){
        while(scanf("%lld%lld",&aa,&bb)!=EOF){
            l=gcd(aa,bb);
            solve(1,-1*aa/l,bb/l);
        }
        return 0;
    }
  • 相关阅读:
    装饰器
    目录和文件操作
    网络通信过程
    epoll并发
    laravel(包含lumen)框架中的跨域函数实例
    windows使用nginx
    nginx反向代理配置 其实很简单
    前端html页面使用marked点亮你的代码
    PHPWAMP开启SSL,PHPWAMP配置ssl证书
    php接收并存储base64位字符串图片
  • 原文地址:https://www.cnblogs.com/poler/p/7256277.html
Copyright © 2020-2023  润新知