Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<math.h>
- using namespace std;
- int k[60001];
- int main(){
- int n, y[60001], p[2000], r, e;
- cin >> n;
- for (int i=1; i<n+1; i++){
- y[i] = 10000;
- }
- if (n==1)
- cout << 0;
- else{
- y[1] = 0;
- for(int i=2; i<n+1; i++){
- for(int j=1; j<1+i/2; j++){
- if (i%j==0){
- if (y[i]>y[i-j]+1){
- y[i] = y[i-j]+1;
- k[i] = i-j;
- }
- }
- }
- }
- r = k[n];
- e = n;
- int w=0;
- while(r!=1){
- p[w] = e-r;
- w++;
- e=r;
- r=k[e];
- }
- cout << y[n] << endl;
- for(int i=0; i<y[n]-1; i++){
- cout << p[i] <<' ';
- }
- cout <<1;
- }
- return(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement