10.12-东塘上午404-J1R

· · 个人记录

T678479 最大公约数和最小公倍数

新知识:

//求两个数a,b最大的公约数gcd(a,b)
ll gcd(ll a,ll b){
    if(a%b==0){
        return b;
    }
    return gcd(b,a%b);
} 
//求两个数a,b最小公倍数lcm(a,b)
ll lcm(ll a,ll b){
    return a*b/gcd(a,b);
}

思路

先创建gcd,lcm;在创建a,b;输入a,b。在输出gcd(a,b),lcm(a,b);

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll gcd(ll a,ll b){
    if(a%b==0){
        return b;
    }
    return gcd(b,a%b);
} 
ll lcm(ll a,ll b){
    return a*b/gcd(a,b);
}
int a,b;
int main(){
    cin>>a>>b;
    cout<<gcd(a,b)<<" "<<lcm(a,b);
    return 0;
}

T678480 最大公约数

新知识:

//求三个数的最大公约数:gcd(gcd(a,b),c);
//求N个数的最大公约数:
//int x=a[1];
for(int i=2;i<=n;i++)x=gcd(x,a[i];)

思路

先来个gcd,再定三个变量a,b,c输入a,b,c输出gcd(gcd(a,b),c);

代码

//求三个数的最大公约数:gcd(gcd(a,b),c);
//求N个数的最大公约数:
//int x=a[1];
//for(int i=2;i<=n;i++)x=gcd(x,a[i];)
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll gcd(ll a,ll b){
    if(a%b==0){
        return b;
    }
    return gcd(b,a%b);
} 
int a,b,c;
int main(){
    cin>>a>>b>>c;
    cout<<gcd(a,gcd(b,c));
    return 0;
}

T678481 晨跑

思路

先创建gcd和lcm;在定a,b,c,输入a,b,c,最后输出lcm(lcm(a,b),c);

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll gcd(ll a,ll b){
    if(a%b==0){
        return b;
    }
    return gcd(b,a%b);
} 
ll lcm(ll a,ll b){
    return a*b/gcd(a,b);
}
int a,b,c;
int main(){
    cin>>a>>b>>c;
    cout<<lcm(lcm(a,b),c);
    return 0;
}

T678484 跑步

思路

先创建gcd和lcm,在创建一个数组:const int N=3e6+5;再来一个数组和变量:n,a[N];输入n,在输入a[i],再将a[i]存起来:long long x=a[1];然后求n的最大公约数。最后来个判断:如果x%2==0那么输出x/2否则输出-1。

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll gcd(ll a,ll b){
    if(a%b==0){
        return b;
    }
    return gcd(b,a%b);
} 
ll lcm(ll a,ll b){
    return a*b/gcd(a,b);
}
const int N=3e6+5;
long long n,a[N];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    long long x=a[1];
    for(int i=2;i<=n;i++){
        x=gcd(x,a[i]);
    }
    if(x%2==0){
        cout<<x/2;  
    }else{
        cout<<"-1";
    }
    return 0;
}