CF664A(求解一连串最大公约数)

祝宁AKIOI

流水账

看数据范围真的很重要,一开始还想模拟一下的,但是看到数据范围,果断放弃,数据范围为

1<=a<=b<=10100

简化一下题意

题目意思就是求GCD(a+1,a+2,a+3,......b);

其实两个连续数的GCD就是1,我们可以用辗转相除法证明一下

比如GCD(x,y)=GCD(y,x

我们另x=a,y=a+1,

GCD(a,a+1)=GCD(a+1,1)=1;

证明完毕

综上

  • 当a,b之间的数达到1个或超过1个时,GCD(a,a+1,a+2,......b)=1
  • 当只有a,b两个数时,且a==b,所以GCD=a;

因为10100

所以用string存数

string 大法吼啊,可以直接判断两个数是否相等,

#include<bits/stdc++.h>
using namespace std;
string a,b;
int main()
{
	cin>>a>>b;
   if(a==b)
       cout<<a<<endl;
   else 
       cout<<1<<endl;
 } 

本文作者:邦的轩辕

本文链接:https://www.cnblogs.com/bangdexuanyuan/p/13543121.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   邦的轩辕  阅读(454)  评论(0编辑  收藏  举报
(评论功能已被禁用)
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.