Maximum GCD

博客围绕给定N个整数,求每对整数最大公因数(GCD)的最大值展开。介绍了输入输出格式及示例,给出解题思路是暴力求解每对整数的GCD并取最大,还提供了C语言实现代码,注重输入控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Given the N integers, you have to find the maximum GCD (greatest common divisor) of every possible pair of these integers.
Input
The first line of input is an integer N (1 < N < 100) that determines the number of test cases. The following N lines are the N test cases. Each test case contains M (1 < M < 100) positive integers that you have to find the maximum of GCD.
Output
For each test case show the maximum GCD of every possible pair.
Sample Input
3

10 20 30 40

7 5 12

125 15 25
Sample Output
20

1

25

题意:求他们之间最大公因数的最大值,你直接每两个之间都求一下,然后取最大就行(暴力即可),注重一点就是得控制输入。

#include<stdio.h>
#include<string.h>
int fun(int x,int y)
{
    if(y==0) return x;
    else return fun(y,x%y);
}
int main()
{
    int n;
    scanf("%d",&n);
    getchar();
    while(n--)
    {
        char s[1000];
        int a[1000];
        gets(s);
        int l=strlen(s);
        int b=0,c=0,maxx=0;
        for(int i=0; i<=l; i++)
        {
            if(s[i]!=' '&&i!=l)
                b=b*10+s[i]-'0';
            else if(b!=0)
            {
                a[c++]=b;
                b=0;
            }
        }
        for(int i=0; i<c; i++)
        {
            for(int j=i+1; j<c; j++)
            {
                if(maxx<fun(a[i],a[j]))
                    maxx=fun(a[i],a[j]);
            }
        }
        printf("%d\n",maxx);
    }
    return 0;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值