提交时间:2024-06-10 10:08:10
运行 ID: 150957
#include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; int x=n; int i=2,j=0,a[99999]; while(x>=i) { a[j++]=i; x=x-i; i++; } int p=j;//记录分解的因数的个数 j--;//最后一个a数组所在位置的下标 while(x--) { a[j]++; j=(j-1+p)%p;//考虑到剩余的数大于分解的因数的个数的情况 } int sum=1; for(int s=0; s<p; s++) { sum=sum*a[s]; } cout<<sum<<endl; return 0; }