蓝桥杯练习系统-质数分解 循环

问题描述
  求出区间[a,b]中所有整数的质因数分解。
输入格式
  输入两个整数a,b。
输出格式
  每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)
样例输入
3 10
样例输出
3=3
4=22
5=5
6=2
3
7=7
8=222
9=33
10=2
5
提示
  先筛出所有素数,然后再分解。
数据规模和约定
  2<=a<=b<=10000

#include
using namespace std;
int main()
{
    int a,b,i,T,c,j;
    cin >> a >> b;
        for(i = a;i <= b;i++)
        {
            T = 1;
            for(j = 2;j < i;j++)//如果不是素数,跳出循环
                if(i % j == 0)
                {
                    T = 0;
                    break;
                }
            
            if(T == 1)//如果i是素数
                printf("%d=%d\n",i,i);
            
            else if(T == 0)//如果i不是素数
            {
                printf("%d=",i);
                j = 2;
                c = i;
                while(1)
                {
                    while(c % j == 0)
                    {
                        cout << j;
                        c = c / j;
                        if(c != 1)
                            cout << "*";
                    }
                    if(c == 1)
                    {
                        cout << endl;
                        break;
                    }
                    j++;
                }
            }
        }
    return 0;
}

你可能感兴趣的:(#,基础练习,#,暴力,算法进阶)