[R3C]公因数求和
// 15. [R3C]公因数求和.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
[R3C]公因数求和
原题地址:https://bs.daimayuan.top/p/15
题目描述
给定正整数 a 和 b,求所有 a 和 b 公因数的和。
输入格式
第一行包含 2 个正整数 a 和 b。
输出格式
输出一个整数,表示所有 a 和 b 公因数的和。
样例输入
36 90
样例输出
39
样例解释
36 和 90 共有 6 个公因数:1、2、3、6、9、18。
所以答案为 1+2+3+6+9+18 = 39。
数据范围与提示
对于 50% 的数据,1 <= a,b <= 10^6。
另有 10% 的数据,a = b。
对于 100% 的数据,1 <= a,b <= 10^12。
*/
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
long long a, b;
long long gcd(long long a, long long b) {
return b ? gcd(b, a % b) : a;
}
int main()
{
cin >> a >> b;
long long v = gcd(a, b);
long long sum = 0;
for(long long i= 1;i*i<=v;i++) {
if (v % i == 0) {
sum += i;
if( v/i != i ) {sum+= v / i;}
}
}
cout << sum << endl;
return 0;
}
作 者: itdef
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力

