当前位置:首页 > 题解目录 > 正文内容

【题解】最大公约数(2019青岛市程序设计竞赛)

亿万年的星光5年前 (2021-04-16)题解目录2513

【问题描述】

给定n,以及正整数序列a1,a2,…,an与b1,b2,…,bn。

令:

sa=a1*a2*…*an

sb=b1*b2*…*bn

求sa和sb的最大公约数gcd(sa,sb)。

【输入】

第一行n。

第二行,序列a1,a2,…,an。两个数之间用空格隔开。

第三行,序列b1,b2,…,bn。两个数之间用空格隔开。

【输出】

sa和sb的最大公约数,结果%10007。

【输入输出样例】

gcd.in

gcd.out

3

12 15   70

20 75   49

2100

【数据范围】

测试点

n范围

ai,bi,sa,sb

1

1<=n<=5

1<=ai,bi<=10000;

sa,sb<109

2

3

4

10<=n<=100

1<=ai,bi<=10000;

sa,sb<10400

5

6

7

8

9

10



【来源】

2019年青岛市程序设计竞赛试题(初中组)2T

  • 题目的难点在于数据范围和最大公约数的求法。

  • 关于最大公约数的求法,可以参见最大公约数求法

  • 取余这个操作用公式:(a*b)%p =(a%p * b%p) %p

  • 数据范围要用long long




【参考答案】

#include<bits/stdc++.h>
using namespace std;
long long n,sa[101],sb[101],ans=1; 
//求最大公约数 
long long gcd(long a,long b)
{
    if(b==0)
        return a;
    return gcd(b,a%b);
} 
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>sa[i];
    }
    for(int i=0;i<n;i++)
    {
        cin>>sb[i];
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            long long devisor=gcd(sa[i],sb[j]); //求最大公约数 
            sa[i]/=devisor;
	    sb[j]/=devisor; //约分 
            ans*=devisor;   //sa与sb的最大公约数等于他们每一项的最大公约数相乘 
            ans%=10007; //取模 
            if(sa[i]==1)
            break;
        }
    }
    cout<<ans%10007;
    return 0; 
}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    【动态规划】完全背包

    【题目描述】设有n种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为m,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于m,而价值的和...

    因子分解

    【题目描述】输入一个数,输出其素因子分解表达式。【输入描述】输入一个整数 n (2≤n<100)。【输出描述】输出该整数的因子分解表达式。表达式中各个素数从小到大排列。如果该整数可以分解出因子a...

    【题解】切比雪夫距离

    【题目描述】小C有一个平面!它发现了平面上的两个点,请你求出求它们之间的切比雪夫距离。切比雪夫距离定义为x与y方向坐标差的绝对值较大值。【输入描述】四个整数,a,b,c,d。坐标为(a,b)与(c,d...

    八皇后问题

    八皇后问题

    【题目描述】八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行...

    【题解】公交乘车

    【题解】公交乘车

    【题目描述】A城市有一条非常特别的街道,该街道在每个公里的节点上都有一个公交车站,乘客可以在任意的公交站点上车,在任意的公交站点下车。乘客根据每次乘坐公交的公里数进行付费,比如,下表就是乘客乘坐不同的...

    【题解】苯小猴

    【题目描述】笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最...