题目描述
给一个正整数n,(n>=2&&n<=1000000000),从小到大输出n的所有因子,包括1和它本身,比如如果输入n为16,则它的所有的因子为1 2 4 8 16
输入描述
一个正整数n
输出描述
从小到大输出n的所有的因子。
样例
输入
10
输出
1 2 5 10
制作不易,点个赞
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
long long n,s[100000],cnt;//定义
int main(){
cin>>n;//输入
int l=sqrt(n);
for(int i=1;i<=l;i++){//从一遍历到n的开平方
if(n%i==0){//判断i是n的因数
int x=n/i;
if(x==i){//判断两个因数是否相同
s[++cnt]=i;
}
else{
s[++cnt]=x;
s[++cnt]=i;
}
}
}
sort(s+1,s+cnt+1);//排序
for(int i=1;i<=cnt;i++){
cout<<s[i]<<" ";//输出
}
return 0;
}
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
long long n,s[100000],cnt;//定义
int main(){
cin>>n;//输入
int l=sqrt(n);
for(int i=1;i<=l;i++){//从一遍历到n的开平方
if(n%i==0){//判断i是n的因数
int x=n/i;
if(x==i){//判断两个因数是否相同
s[++cnt]=i;
}
else{
s[++cnt]=x;
s[++cnt]=i;
}
}
}
sort(s+1,s+cnt+1);//排序
for(int i=1;i<=cnt;i++){
cout<<s[i]<<" ";//输出
}
return 0;
}