藍橋杯 試題 基礎練習 分解質因數

2021-10-03 13:46:05 字數 731 閱讀 2939

問題描述

求出區間[a,b]中所有整數的質因數分解。

輸入格式

輸入兩個整數a,b。

輸出格式

每行輸出乙個數的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是從小到大的)(具體可看樣例)

樣例輸入

3 10

樣例輸出

3=34=2*2

5=56=2*3

7=78=2*2*2

9=3*3

10=2*5

提示先篩出所有素數,然後再分解。

資料規模和約定

2<=a<=b<=10000

先篩選出質數,這個簡單,難點在於如何對素數因式分解。

素數的因式一定都是質數,所有可以直接在質數裡面找乙個素數的因式。首先需要列印出質數表,我列印了前1000個質數,夠用了。然後需要找到這個素數的因式裡面最小的數。比例9的因式最小的數是3,25的因式最小的數是5。先輸出,然後在遍歷質數表,從小到大找到所有的能整除素數的質數。

#include#include#include#include#include#includeusing namespace std;

const int n=1000;

int zs[n+2]={};

int zhishu(int a)

int printzs()

void f(int a)

} }}

藍橋杯 試題 基礎練習 分解質因數

資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 求出區間 a,b 中所有整數的質因數分解。輸入格式 輸入兩個整數a,b。輸出格式 每行輸出乙個數的分解,形如k a1 a2 a3.a1 a2 a3.k也是從小到大的 具體可看樣例 樣例輸入310 樣例輸出3 34 2 25 56 2...

藍橋杯 試題 基礎練習 分解質因數

題意 求出區間 a,b 中所有整數的質因數分解。思路 我們可以先求出從2到b之間所有的素數,把這些素數插入陣列,然後每次從頭遍歷這個素數陣列,如果當前的數能整除素數,那麼跟新新的當前的值,及除以素數,然後從頭開始重新遍歷素數陣列。如果不能整除當前陣列,那麼就 嘗試下乙個素數!include usin...

藍橋杯 基礎練習 分解質因數

首先先篩選出素數陣列,不用太大也不要太小,我這裡選了10000過了 然後用乙個while迴圈逐級判斷,不能直接輸出,把結果放在乙個陣列裡最後將得出的結果排序最後再輸出即可 本題發現乙個問題,memset函式在給陣列賦值時,如果不是賦0那麼在陣列範圍很大時比如10000時可能就會出問題,本題出了一次很...