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

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

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

【问题描述】

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


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

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

分享给朋友:

相关文章

【题解】结构体与闰年

【题目描述】定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。【输入描述】年月日【输出描述】当年第几天【样例输入】2000 12 31【样例输出】366...

2021年市南区程序设计竞赛(小学组)

1.建设病房(build.cpp)【题目描述】2020年1月23日下午,武汉市建设局紧急召集中建三局等单位举行专题会议,要求参照2003年抗击非典期间北京小汤山医院模式,在武汉职工疗养院建设火神山医院...

【题解】计数2的N次方

【题目描述】任意给定一个正整数N(N≤100),计算2的n次方的值。【输入描述】输入一个正整数N。【输出描述】输出2的N次方的值。【样例输入】5【样例输出】32【参考答案】#include<io...

【题解】大整数加法

【题目描述】求两个不超过200位的非负整数的和。【输入】有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。【输出】一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么...

【题解】二分法查找左边界

参考代码:# include <bits/stdc++.h> using namespace std; int a[100005];&...

【题解】区间数位个数

2.区间数位个数(digit.cpp)【描述】给定整数n和整数k,求出1~n中所有数的每一位数字中,出现数字k的次数。【输入】第一行是两个个整数n和k【输出】一个整数表示答案。【样例输入输出】ligh...