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)

posted @ 2021-10-25 13:01  WMS_lalalala  阅读(55)  评论(0)    收藏  举报