质因数(素因数或质因子)在数论里是指能整除给定正整数的质数
质数定义为在大于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]<<' ';}}
}