【蓝桥杯】分解质因数

【蓝桥杯】分解质因数

题目链接:

https://www.dotcpp.com/oj/problem1464.html

题解:

本来想的是先用素筛过一遍数据规模中的数,但是整了半天素筛好像有问题。。。搞不懂在哪里

然后突然又忘了质因数是什么,查百度百科😂

质因数:每个合数都可以写成几个质数(也可称为素数)相乘的形式 [2] ,这几个质数就都叫做这个合数的质因数。

发现下面的C++方法写的很好,代码很精简,于是乎先不管三七二十一改写一下,先把题交了哈哈

AC代码:

#include <iostream>
using namespace std;
int main()
{
    int a,b,t;
    cin>>a>>b;
    for(int i=a;i<=b;i++){
        cout<<i<<"=";
        t=i;
        for(int j=2;j*j<=t;j++){
            while(t%j==0){
                t/=j;
                cout<<j;
                if(t!=1)cout<<"*";
            }
        }
        if(t!=1)cout<<t;
        cout<<endl;
    }
    return 0;
}

但是,还是对其中的for,while循环有点迷。

第一个for循环是遍历数据范围中的每一个数,那第二个for和while是干吗的呢?

**于是我准备跑个数字看一看: ** 24

j t console
2 12 24=2*
2 6 24=2*2*
2 3 24=2*2*2*
3 1 24=2*2*2*3

似乎有点明白了,但是还是晕晕乎乎的,大致就是说,先一直除2,不行了再除3....依次除吧。

posted @ 2020-07-23 18:18  熊子q  阅读(392)  评论(0)    收藏  举报