cf803c 数论

细节很多的题

#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",n);

}

 

posted on 2019-01-08 20:00  zsben  阅读(160)  评论(0编辑  收藏  举报

导航