下列程序想要求解整数n的所有约数两两之间最大公约数的和对10007求余后的值,试补全程序。
举例来说,4的所有约数是1,2,4。1和2的最大公约数为1,2和4的最大公约数为2,1和4的最大公约数为1,于是答案为1+2+1=4。
#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; }