一个数的最小约数肯定是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; }