东华OJ-进阶题-10-分解质因数(C++)

  • 问题描述
    求出区间[a,b]中所有整数的质因数分解。
  • 输入说明
    输入两个整数a,b。

2<=a<=b<=10000

  • 输出说明
    每行输出一个数的分解,形如k=a1a2a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看范例)
  • 输入范例
cpp 复制代码
3 10
  • 输出范例
cpp 复制代码
3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5

感想:如果是合数的话,得分解到最后一个数是质数。
代码如下:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

bool isPrime(int n) {
    if(n<2) return false;
    if(n==2) return true;
    if(n%2==0) return false;
    for(int i = 3; i*i<=n; i+=2)
        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(isPrime(temp))
            cout<<temp<<"="<<temp;
        else {
            cout<<temp<<"=";
            bool single = true;
            for(int j = 2; j*j<=i; ++j) {
                if(temp%j==0) {
                    if(!single) cout<<"*";
                    cout<<j;
                    temp=temp/j;
                    j=1;
                    single = false;
                    if(isPrime(temp)){
                        cout<<"*"<<temp;
                        break;
                    }
                }
            }
        }
        cout<<endl;
    }

    return 0;
}
相关推荐
汀、人工智能4 小时前
[特殊字符] 第40课:二叉树最大深度
数据结构·算法·数据库架构·图论·bfs·二叉树最大深度
沉鱼.444 小时前
第十二届题目
java·前端·算法
赫瑞5 小时前
数据结构中的排列组合 —— Java实现
java·开发语言·数据结构
大熊背5 小时前
ISP Pipeline中Lv实现方式探究之三--lv计算定点实现
数据结构·算法·自动曝光·lv·isppipeline
初夏睡觉5 小时前
c++1.3(变量与常量,简单数学运算详解),草稿公放
开发语言·c++
西岸行者6 小时前
BF信号是如何多路合一的
算法
阿拉斯攀登6 小时前
从入门到实战:CMake 与 Android JNI/NDK 开发全解析
android·linux·c++·yolo·cmake
大熊背6 小时前
ISP Pipeline中Lv实现方式探究之一
算法·自动白平衡·自动曝光
罗西的思考7 小时前
【OpenClaw】通过 Nanobot 源码学习架构---(5)Context
人工智能·算法·机器学习
Liudef067 小时前
后量子密码学(PQC)深度解析:算法原理、标准进展与软件开发行业的影响
算法·密码学·量子计算