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

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

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

【问题描述】

给定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; 
}


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

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

    分享给朋友:

    相关文章

    【题解】2001-T1 数的计数

    【题目描述】我们要求找出具有下列性质数的个数(包含输入的自然数nn):先输入一个自然数n(n≤1000)n(n≤1000),然后对此自然数按照如下方法进行处理:1.不作任何处理;2.在它的左边加上一个...

    【题解】队列问题

    【题解】队列问题

    4.队列问题(lru.cpp)【题目描述】有一个大小为n的页面缓存队列,初始为空,当计算机访问页面时,若缓存队列没有该页面,则加入到缓存队列中,若队列已满,则将删除访问时间最远的页面。有Q次询问,每次...

    【题解】演讲大赛评分

    【题目描述】最近"老王"很开心.他在大一的时候参加过数计学院的“软件小组”。告诉你个秘密,这个小组是个好地方,不但活动精彩而且有MM。 这不,这个小组举办了一个叫做“计算...

    【题解】给定和为定数

    【题目描述】给出若干个整数,询问其中是否有一对数的和等于给定的数。【输入描述】第一行是整数n(0 < n ≤ 100,000),表示有n个整数。第二行是n个整数。整数的范围是在0到108之间。第...

    【题解】取余运算

    【题目描述】输入b,p,k的值,求bp mod k的值。其中b,p,k×k为长整型数。【输入描述】输入b,p,k的值。【输出描述】求 b^p mod k的值。【样例输入】2 10 ...

    【题解】搭配购买

    【题目描述】Joe觉得云朵很美,决定去山上的商店买一些云朵。商店里有n朵云,云朵被编号为1,2,…,n,并且每朵云都有一个价值。但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配...