质因数(素因数或质因子)在数论里是指能整除给定正整数的质数
质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
正整数的因数分解可将正整数表示为一连串的质因子相乘,质因子如重复可以用指数表示
除了1以外,两个没有其他共同质因子的正整数称为 互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质//公约数只有1的两个整数,叫做互质整数
//求一个数的质因数的个数
#include<stdio.h>
#include<math.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int m=n,t=0;
for(int i=2;i<=sqrt(m);i++)
{
while(m%i==0)
{
m=m/i;
t++;
}
}
printf("%d",m>1?t+1:t);
}
}
//求一个数的最大质因数
#include <iostream>
using namespace std;
int findBigChild(int n){
int ans=1;
for(int i=2;i<=n;i++){
while(n%i==0){
n=n/i;
ans=i;
}
}
return ans;
}
int main(){
int a;
cin>>a;
int ans=findBigChild(a);
cout<<ans<<endl;
return 0;
}
//依次输出所有数的质因数
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n,num=0,a[100],i;
cin>>n;
for(i=2;i<=sqrt(n);++i){
while(n%i==0){
n=n/i;
a[num]=i;
num++;
}
}
if(num==0) cout<<num+1<<' '<<n;
else {
for(i=0;i<num;++i){
cout<<a[i]<<' ';
}
}
}