The conclusion was launched, and we never expected to use the final search ..
I also want DP ..
# Include <cstdio> # include <cstring> # include <iostream> # include <algorithm> # include <math. h ># include <set> # include <vector> # include <map> using namespace STD; # define ll long # define n 1000005ll prime [N], primenum; // math has primenum prime numbers. hvoid prime (LL max_prime) {primenum = 0; prime [primenum ++] = 2; for (ll I = 3; I <= max_prime; I + = 2) for (ll j = 0; j <primenum; j ++) if (I % prime [J] = 0) break; else if (prime [J]> SQRT (double) I) | j = primenum-1) {Prime [primenum ++] = I; break;} ll N, ANS, sum; void DFS (ll a, ll s, ll T, ll l) {If (S> n <1) return; if (S = 2 * n | S = 2 * N-1) {ans = min (ANS, a); return;} If (T> 20) return; for (ll I = 1; I <= L; I ++) {A * = prime [T]; DFS (A, S * (I + 1 ), t + 1, I) ;}} int main () {ll I, j, U, V; prime (100); While (CIN> N, N) {ans = 1e18; DFS (,); cout <ans <Endl;} return 0 ;}