天天看點

AcWing 869. 試除法求約數

約數專題

求一個數的約數個數

連結(​​https://www.acwing.com/activity/content/problem/content/938/)​​

代碼:

#include<bits/stdc++.h>
using namespace std;
#define cout(x) printf("%d",x)
#define cin(x) scanf("%d",&x)
#define ll long long
int fun(int x){
  vector<int>v;
  for(int i=1;i<=x/i;i++){//!
    if(x%i==0){
      v.push_back(i);
      if(i!=x/i)v.push_back(x/i);
    }
  }
  sort(v.begin(),v.end());
  for(int i=0;i<v.size();i++){
    cout<<v[i]<<" ";
  }
}
int main(){
  int n,a;
  cin>>n;
  for(int i=0;i<n;i++){
    cin>>a;
    fun(a);
    cout<<endl;
  }
  return 0;
}

      

注意

1.i<=x/i

2.用vector省空間

3.vector的用法v.begin和v.end

4.注意if(i!x/i)否則會重(25=5*5)

繼續閱讀