东华oj 10.分解质因数

#include <iostream>
#include <string.h>

using namespace std;


bool is_prime(int n){  //判断是否是素数
    if(n<2) return false;
    for(int i=2;i<=n/i;i++){
        if(n%i==0) return false;
    }
    return true;
}

int main(){
    int a,b;
    cin>>a>>b;
    for(int i=a;i<=b;i++)
    {
        int temp=i;
        if(is_prime(temp)){
            printf("%d=%d\n",i,i);
        }
        else{
            printf("%d=",i);
            for(int j=2;j<=temp;j++) //遍历该数的所有因子
            {
                while(temp%j==0) //把j这个因子除尽
                {
                    cout<<j;
                    temp/=j; //边得到因子边除,减小for计算次数
                    if(temp!=1){   //temp==1表示除完了
                        cout<<"*";
                    }
                }
            }
            cout<<endl;
        }
    }
    

   
    return 0;
}

//一边找因子一边把大数除下来,因子可能重复,用while很巧妙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值