(数论1)质因数

质因数(素因数或质因子)在数论里是指能整除给定正整数的质数

质数定义为在大于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]<<' ';
        }
    }
} 

猜你喜欢

转载自blog.csdn.net/qq_40828914/article/details/80694726
今日推荐