细节很多的题
#include<bits/stdc++.h> using namespace std; #define ll long long int main(){ ll n,k,tmp,ans=1; cin >> n >> k; tmp=2*n/k/(1+k); if(tmp==0) { puts("-1"); return 0; } for(ll i=2;i*i<=n;i++){ if(n%i==0){ if(i*i==n){ if(i<=tmp) ans=max(ans,i); } else { if(i<=tmp) ans=max(ans,i); if(n/i<=tmp) ans=max(ans,n/i); } } } for(int i=1;i<k;i++) printf("%lld ",ans*i),n-=ans*i; printf("%lld ",n); }