算法基础之试除法求约数

试除法求约数

  •   #include
      #include
      #include
      
      using namespace std;
      
      vector<int> div(int n)
      {
          vector<int> res;
          for(int i=1;i<= n/i ;i++)
          {
              if(n % i == 0) 
              {
                  res.push_back(i);  //整除就加
                  if(n/i != i) res.push_back(n/i);  //只要两个约数不一样 就加
              }
          }
          sort(res.begin(),res.end());  
          return res;
      }
      
      int main()
      {
          int n;
          cin>>n;
          
          while(n--)
          {
              int a;
              cin>>a;
              auto res = div(a);
              for(auto t : res) cout<<t<<" ";
              cout<<endl;
          }
      }
      
      
    

你可能感兴趣的:(算法)