下列程序想要求解整数n的所有约数两两之间最大公约
数的和对10007求余后的值,试补全程序。(第一空 2 分,其余 3 分)
举例来说,4的所有约数是1,2,4。
1和2的最大公约数为1;
2和4的最大公约数为2;
1和4的最大公约数为1。
于是答案为1 + 2 + 1 = 4。
要求 getDivisor 函数的复杂度为O(√n),
gcd 函数的复杂度为O(logmax(a,b))。
#include <iostream>
using namespace std;
const int N = 110000, P = 10007;
int n;
int a[N], len;
int ans;
void getDivisor()
{
len = 0;
for (int i = 1; (1) <= n; ++i)
if (n % i == 0)
{
a[++len] = i;
if ( (2) != i) a[++len] = n / i;
}
}
int gcd(int a, int b)
{
if (b == 0)
{
(3) ;
}
return gcd(b, (4) );
}
int main()
{
cin >> n;
getDivisor();
ans = 0;
for (int i = 1; i <= len; ++i)
{
for (int j = i + 1; j <= len; ++j)
{
ans = ( (5) ) % P;
}
}
cout << ans << endl;
return 0;
}
/*
1.i*i
2.n/i
3.return a
4.a%b
5.ans+gcd(a[i],a[j])
*/
NOIP 2017 普及组初赛试题_完善程序 4.1 快速幂
NOIP 2017 提高组初赛试题_完善程序 5.1 大整数除法
NOIP 2017 普及组初赛试题_完善程序 4.2:切割绳子
NOIP 2017 提高组初赛试题_完善程序 02 (最长路径)
NOIP 2017 提高组初赛试题_完善程序 02 (最长路径)_dllglvzhenfeng的博客-CSDN博客
信息学奥赛寒假、暑假、国庆十一假期 如何进行集训
信息学奥赛学习、训练、测试的顺序,思路及方法
信息学奥赛训练体系(2023.02.21)
信息学奥赛 CSP-J2 CSP-S2第2轮 复赛 如何取得好成绩
信息学奥赛 CSP-J2 CSP-S2第2轮 复赛 如何取得好成绩_cps-j 第二轮试题做对几道题能拿奖-CSDN博客
2022年暑期及9月份CSP-J1 CSP-S1初赛 培训计划及学习要点
2022年暑期及9月份CSP-J1 CSP-S1初赛 培训计划及学习要点_dllglvzhenfeng的博客-CSDN博客