洛谷题目:P1249 最大乘积
题目描述:
一个正整数一般可以分为几个互不相同的自然数的和,如 3=1+2,4=1+3,5=1+4=2+3,6=1+5=2+4。
现在你的任务是将指定的正整数 nn 分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大。
输入格式
只一个正整数 n,( 3 ≤ n ≤ 10000 )。
输出格式
第一行是分解方案,相邻的数之间用一个空格分开,并且按由小到大的顺序。
第二行是最大的乘积。
输入输出样例
输入:
10
输出:
2 3 5
30
我的代码:
package 算法竞赛;
import java.io.*;
import java.math.BigInteger;
/*
思路:3、4特殊判断,其余从2逐步求和,知道再加就超过n,然后处理余数,从后往前加。
*/
public class Test6 {
static BufferedReader ins = new BufferedReader(new InputStreamReader(System.in));
static StreamTokenizer in = new StreamTokenizer(ins);