Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.87 KB | None | 0 0
  1. #include<iostream>
  2. #include<math.h>
  3.  
  4. using namespace std;
  5.  
  6. int k[60001];
  7.  
  8. int main(){
  9.     int n, y[60001], p[2000], r, e;
  10.     cin >> n;
  11.     for (int i=1; i<n+1; i++){
  12.         y[i] = 10000;
  13.     }
  14.     if (n==1)
  15.         cout << 0;
  16.     else{
  17.         y[1] = 0;
  18.         for(int i=2; i<n+1; i++){
  19.             for(int j=1; j<1+i/2; j++){
  20.                 if (i%j==0){
  21.                     if (y[i]>y[i-j]+1){
  22.                         y[i] = y[i-j]+1;
  23.                         k[i] = i-j;
  24.                     }
  25.                 }
  26.             }
  27.         }
  28.         r = k[n];
  29.         e = n;
  30.         int w=0;
  31.         while(r!=1){
  32.             p[w] = e-r;
  33.             w++;
  34.             e=r;
  35.             r=k[e];
  36.         }
  37.         cout << y[n] << endl;
  38.         for(int i=0; i<y[n]-1; i++){
  39.             cout << p[i] <<' ';
  40.         }
  41.         cout <<1;
  42.     }
  43.     return(0);
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement