给你一组数,求出其中两两最大公约数中最大的值

简介: 给你一组数,求出其中两两最大公约数中最大的值
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
using namespace std;
typedef long long ll;
const int maxn=1e2+10;
int a[maxn];
int maxx=-1;
int gcd(int a,int b)
{
    return b?gcd(b,a%b):a;      ///
}
int main()
{
    int t;char ch;
    scanf("%d",&t);
    getchar();
    while(t--)
    {
        char s[maxn];
        gets(s);
        int to=0,cnt=0;
        int num[maxn];
        for(int i=0;s[i]!='\0';i++)
        {
            if(s[i]==' ')
            {
                num[cnt++]=to;
                to=0;
            }
            else
                to=to*10+s[i]-'0';
        }
        if(to)
            num[cnt++]=to;
        maxx=-1;
        for(int i=0;i<cnt;i++)
        {
            for(int j=i+1;j<cnt;j++)
                {
                    maxx=max(maxx,gcd(num[i],num[j]));
                }
        }
        cout<<maxx<<endl;
    }
}
目录
相关文章
|
6月前
|
算法
给定两个数,求这两个数的最大公约数
给定两个数,求这两个数的最大公约数
|
算法
把数组里面数值排成最小的数
把数组里面数值排成最小的数
35 1
|
21天前
两数之间的 Armstrong 数
【10月更文挑战第24天】两数之间的 Armstrong 数。
12 4
|
6月前
DAY-4 | 力扣 - 求自身以外数组的乘积:区间划分,左右累乘,巧求乘积
该文档是关于LeetCode上的一道题目“Product of Array Except Self”的题解。提供了两种解题方法,一是暴力破解,即计算所有数的乘积后再逐个除以当前元素;二是左右累乘法,通过两次遍历数组分别计算左侧和右侧元素的乘积,避免了除法操作。其中,左右累乘法更优,代码实现中展示了这种方法。
43 1
|
6月前
|
算法 测试技术 C#
【最大公约数 调和级数】2183.统计可以被 K 整除的下标对数目
【最大公约数 调和级数】2183.统计可以被 K 整除的下标对数目
|
6月前
|
人工智能
PTA-求一组数中大于平均值的数的和
求一组数中大于平均值的数的和
61 0
|
自然语言处理 算法 Python
利用函数求出一个数组最大三个数的乘积
利用函数求出一个数组最大三个数的乘积
115 0
求出任意非负整数区间中1出现的次数
求出任意非负整数区间中1出现的次数
112 0