码迷,mamicode.com
首页 > 其他好文 > 详细

1990: 分解质因数

时间:2018-09-10 21:17:38      阅读:503      评论:0      收藏:0      [点我收藏+]

标签:namespace   ace   区间   存储   class   整数   back   while   std   

#include <iostream>

#include <vector>

using namespace std;

 

// 判断是否是质数

bool IsPrime(int n)

{

    int i;

    for (i = 2; i <= n/2; ++i)

    {

        if (n%i == 0)

        {

            return false;

        }

    }

    if (i > n/2)

    {

        return true;

    }

    else

    {

        return false;

    }

}

 

int main()

{

    vector<int> v; // 存储2-b的所有质数

    int a,b;  

    cin >> a;

    cin >> b;

    for (int i = 2; i<=b; ++i) // 存储质数过程

    {

        if (IsPrime(i))

        {

            v.push_back(i);

        }

    }

 

    for ( int i = a; i <= b; ++i) // 从a开始处理直到b

    {

        if (IsPrime(i))   // 是质数的话 直接输出

        {

            cout << i << "=" << i;

        }

        else  // 不是质数分别处理

        {

            cout << i << "=";

            int temp = i;// 暂存i

            int index = 0; //存储质数的数组下标 索引

            while (temp != 1)  // 当前数字没有被除尽时继续

            {

                if (temp%v[index] == 0)  // 从第一个质数开始除

                {

                    cout << v[index];  

                    temp /= v[index];     

                    index = 0; // 还原   即 继续从第一个质数2开始尝试

 

                    if (temp != 1)   // 控制 * 的输出

                        cout << "*";

                }

                else  // 不能整除的话尝试下一个质数

                {

                    index++;

                }

 

            }

            

        }

 

        cout << endl;

    }

    return 0;

}
题目描述
求出区间[a,b]中所有整数的质因数分解。 

输入
输入两个整数a,b。(2< =a< =b< =10000)  

输出
每行输出一个数的分解,形如k=a1*a2*a3...(a1< =a2< =a3...,k也是从小到大的)(具体可看样例)  

样例输入
3 10

样例输出
3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5

提示
先筛出所有素数,然后再分解。

 


 

1990: 分解质因数

标签:namespace   ace   区间   存储   class   整数   back   while   std   

原文地址:https://www.cnblogs.com/binanry/p/9622675.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!