一个数的最小约数肯定是1,最大约数就是它自己。
那么要求最小约数的和加最大约数的和,可以发现最小约数和为n(是n1)。
最大约数和便是1+...+n(从1加到n),采用等差公式直接求得n(n+1)/2,两者相加便可以了。
记得开long long,不然数据会溢出。
#include<iostream>
#define ll long long
using namespace std;
int main()
{
ll n;
cin>>n;
cout<<(ll)(n+n*(n+1)/2)<<endl;
}
京公网安备 11010502036488号