Nayeemzaman

Untitled

Nov 7th, 2020
2,289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int D[10005];
  4. int temp[10005];
  5. int id,x;
  6. vector<int>ans[10005];
  7. void call(int n,int idx,int i){
  8.     if(n==1){
  9.         for(int j=0;j<idx;j++){
  10.             ans[x].push_back(temp[j]);
  11.         }
  12.         x++;
  13.         return;
  14.     }
  15.     //cout<<id<<endl;
  16.     for(;i<id;i++){
  17.         if(n%D[i]==0&&(n/D[i]>=D[i] || n==D[i])){
  18.             temp[idx]=D[i];
  19.             call(n/D[i],idx+1,i);
  20.         }
  21.     }
  22. }
  23. int main()
  24. {
  25.     int n;
  26.     while(cin>>n && n){
  27.         id=0;
  28.         x=0;
  29.         for(int i=2;i*i<=n;i++){
  30.             if(n%i==0&&n/i!=i){
  31.                 D[id++]=i;
  32.                 D[id++]=n/i;
  33.             }
  34.             else if(n%i==0){
  35.                 D[id++]=i;
  36.             }
  37.         }
  38.         sort(D,D+id);
  39.         if(id)
  40.             call(n,0,0);
  41.         cout<<x<<endl;
  42.         for(int i=0;i<x;i++){
  43.             cout<<ans[i][0];
  44.             for(int j=1;j<ans[i].size();j++){
  45.                 cout<<' '<<ans[i][j];
  46.             }
  47.             cout<<endl;
  48.             ans[i].clear();
  49.         }
  50.     }
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment