import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.math.BigInteger;
public class Main {
public static void main(String[] args) throws IOException{
int N=ini();
int a=2;
int n=0;
int sum=N;
int[]arr=new int[140];
while (sum-a>=0){
sum-=a;
arr[n++]=a;
a++;
}
while (sum>0){
for (int i = n-1; i >=0 ; --i) {
arr[i]++;
sum--;
if (sum==0){
break;
}
}
}
BigInteger result=new BigInteger(String.valueOf(arr[0]));
out.print(arr[0]);
for (int i = 1; i < n; ++i) {
out.print(" "+arr[i]);
result=result.multiply(new BigInteger(String.valueOf(arr[i])));
}
out.println();
out.print(result);
out.close();
}
static StreamTokenizer in=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static PrintWriter out=new PrintWriter(new BufferedOutputStream(System.out));
static int ini() throws IOException {
in.nextToken();
return (int)in.nval;
}
}
贪心思想
把数分解成2,3,4,5。。。n-1,n
如果分到最后不够了,就把这个数从后往前分出1加给前面排好的数列