读入一个正整数,进行素因子分解 𝑛 ( 2 <= 𝑛 <= 10 9 ) 样例输入 复制 100 样例输出 复制 100=2*2*5*5
```python n = int(input()) original_n = n factors = [] # 处理因子2 while n % 2 == 0: factors.append(2) n //= 2 # 处理奇数因子 p = 3 while p * p <= n: while n % p == 0: factors.append(p) n //= p p += 2 # 处理剩余的质数 if n > 1: factors.append(n) # 输出结果 if factors: result = f"{original_n}=" + "*".join(map(str, factors)) else: result = f"{original_n}={original_n}" print(result) ``` 代码说明: 1. 读取输入的正整数 `n`,保存原始值 `original_n` 用于输出 2. 创建列表 `factors` 存储所有质因子 3. 先处理因子2(唯一的偶质数) 4. 从3开始处理奇数因子,只需检查到 `sqrt(n)` 5. 如果最后 `n > 1`,说明 `n` 本身是质数 6. 格式化输出结果,用 `*` 连接所有质因子 时间复杂度: O(√n) 空间复杂度: O(log n) [2026-01-11 17:44:13 | AI问答 | 278点数解答]
相关提问
- [字节豆包] 请你补全代码,把数组a的所有元素都赋值为100。 输入: 无 输出: 共二十行,每行一个整数,为数组中的每个数。 输入样例: 无 输出样例: 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100#include <iostream> using namespace std; int main() { int a[20]; for ( ) { } for (int i = 0; i < 20; i++) { cout << a[i] << endl; } return 0; }(164点数解答 | 2025-11-01 19:14:57)83
- [字节豆包] 给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理: 1.四周最外侧的像素点的值不变; 2.中间各像素点新值为该像素点及其上下左右相邻四个像素点值的平均数(向下取整)。 输入 第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1≤n≤100,1≤m≤100。 接下来n行,每行m个整数,表示图像的每个像素点的值。相邻两个整数之间用单个空格隔开,每个元素均在0∼255之间。 输出 n行,每行m个整数,为模糊处理后的图像。相邻两个整数之间用单个空格隔开。 样例输入 复制 4 5 100 0 100 0 50 50 100 200 0 0 50 50 100 100 200 100 100 50 50 100 样例输出 复制 100 0 100 0 50 50 80 100 60 0 50 80 100 90 200 100 100 50 50 100(555点数解答 | 2025-12-09 12:22:26)69
- [字节豆包] 题目描述 给定m行n列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理: 1.四周最外侧的像素点灰度值不变; 2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均值(四舍五入)。 输入格式 第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1<=n<=100,1<=m<=100。 接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。 输出格式 m行,每行n个整数,为模糊处理后的图像。相邻两个整数之间用单个空格隔开。 输入样例1 4 5 100 0 100 0 50 50 100 200 0 0 50 50 100 100 200 100 100 50 50 100 输出样例1 100 0 100 0 50 50 80 100 60 0 50 80 100 90 200 100 100 50 50 100 用c++语言 (670点数解答 | 2025-11-10 18:55:33)92
- [字节豆包] 题目描述 给定m行n列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理: 1.四周最外侧的像素点灰度值不变; 2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均值(四舍五入)。 输入格式 第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1<=n<=100,1<=m<=100。 接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。 输出格式 m行,每行n个整数,为模糊处理后的图像。相邻两个整数之间用单个空格隔开。 输入样例 4 5 100 0 100 0 50 50 100 200 0 0 50 50 100 100 200 100 100 50 50 100 输出样例 100 0 100 0 50 50 80 100 60 0 50 80 100 90 200 100 100 50 50 100 说明/提示 用c++(655点数解答 | 2025-12-01 14:24:01)67
- [字节豆包] 现有 n n 个正整数,乌拉乎想要快速从这些数中找到第 x x 个数字,请你帮助乌拉乎编写一个程序,实现对应的功能吧。 输入格式 输入包含三行, 第一行,一个正整数 n n。 第二行,依次为 n n个 正整数 a [ i ] a[i]。 第三行,一个正整数 x x。 输出格式 输出这 n n 个数中的第 x x 个数。 input1 复制 3 4 6 2 2 output1 复制 6 input2 复制 5 3 1 1 2 3 5 output2 复制 3 提示 注意 序号和数组下标 的对应关系,如果需要使用 a [ 100 ] a[100] ,那么定义数组时至少需要定义为 int a [ 101 ] a[101]; 数据规模与约定 对于 100 % 100% 的数据, 1 ≤ x ≤ n ≤ 100 1≤x≤n≤100, 1 ≤ a [ i ] ≤ 100 1≤a[i]≤100。c++(380点数解答 | 2025-11-08 19:23:39)128
- [字节豆包] 题目描述 读入一个 的数字矩阵,输出数字矩阵的主对角线之和。 即自左上到右下这条对角线。 输入 读入一个整数 , 不超过 。 接下来读入 行 列的数字矩阵。每个数字的范围在 ~ 之间。 输出 输出数字矩阵的主对角线之和。 样例输入 复制 10 10 4 4 3 7 9 8 5 7 9 10 10 6 3 10 3 6 4 10 3 4 10 4 1 4 4 8 8 8 7 7 9 9 9 9 9 10 4 3 5 1 6 2 6 4 6 6 5 8 10 3 9 8 7 6 9 8 7 6 4 2 7 9 5 7 3 5 4 8 4 1 2 1 4 10 3 2 2 8 2 10 6 10 8 5 5 10 9 6 6 7 6 4 5 10 5 6 5 10 9 样例输出 复制(358点数解答 | 2025-12-08 12:25:06)54
- [字节豆包] 题目描述 读入一个 的数字矩阵,输出数字矩阵左上角的数字之和。 如上图蓝色部分所示:副对角线数字上方的就是左上角数字。 输入 读入一个整数 , 不超过 。 接下来读入 行 列的数字矩阵。每个数字的范围在 ~ 之间。 输出 输出数字矩阵的左上角之和。 样例输入 复制 10 10 4 4 3 7 9 8 5 7 9 10 10 6 3 10 3 6 4 10 3 4 10 4 1 4 4 8 8 8 7 7 9 9 9 9 9 10 4 3 5 1 6 2 6 4 6 6 5 8 10 3 9 8 7 6 9 8 7 6 4 2 7 9 5 7 3 5 4 8 4 1 2 1 4 10 3 2 2 8 2 10 6 10 8 5 5 10 9 6 6 7 6 4 5 10 5 6 5 10 9 样例输出 复制 273(333点数解答 | 2025-12-08 17:52:36)52
- [字节豆包] 题目描述 读入一个 的数字矩阵,输出数字矩阵左上角的数字之和。 如上图蓝色部分所示:副对角线数字上方的就是左上角数字。 输入 读入一个整数 , 不超过 。 接下来读入 行 列的数字矩阵。每个数字的范围在 ~ 之间。 输出 输出数字矩阵的左上角之和。 样例输入 复制 10 10 4 4 3 7 9 8 5 7 9 10 10 6 3 10 3 6 4 10 3 4 10 4 1 4 4 8 8 8 7 7 9 9 9 9 9 10 4 3 5 1 6 2 6 4 6 6 5 8 10 3 9 8 7 6 9 8 7 6 4 2 7 9 5 7 3 5 4 8 4 1 2 1 4 10 3 2 2 8 2 10 6 10 8 5 5 10 9 6 6 7 6 4 5 10 5 6 5 10 9 样例输出 复制 273(387点数解答 | 2025-12-08 17:54:37)56
- [DeepSeek] 题目描述 读入一个 的数字矩阵,输出数字矩阵的主对角线之和。 即自左上到右下这条对角线。 输入 读入一个整数 , 不超过 。 接下来读入 行 列的数字矩阵。每个数字的范围在 ~ 之间。 输出 输出数字矩阵的主对角线之和。 样例输入 复制 10 10 4 4 3 7 9 8 5 7 9 10 10 6 3 10 3 6 4 10 3 4 10 4 1 4 4 8 8 8 7 7 9 9 9 9 9 10 4 3 5 1 6 2 6 4 6 6 5 8 10 3 9 8 7 6 9 8 7 6 4 2 7 9 5 7 3 5 4 8 4 1 2 1 4 10 3 2 2 8 2 10 6 10 8 5 5 10 9 6 6 7 6 4 5 10 5 6 5 10 9 样例输出 复制 68(107点数解答 | 2025-12-29 12:22:27)36
- [DeepSeek] 题目描述 输入四个整数 x , y , a , b x,y,a,b,请你按照要求输出 x ∼ y x∼y 之间的所有数。 要求: 不要输出数字 a a。 不要输出大于等于数字 b b 的数。 输入格式 输入包括一行,包含四个整数 x , y , a , b x,y,a,b,数字之间用空格隔开。 输出格式 输出包括一行,为 x ∼ y x∼y 之间符合要求的数字。 input1 复制 10 20 13 17 output1 复制 10 11 12 14 15 16 input2 复制 50 55 52 100 output2 复制 50 51 53 54 55 样例解释 对于样例 1 1: 样例要求输出 10 ∼ 20 10∼20 之间不是 13 13, 且小于 17 17 的数,故有 10 , 11 , 12 , 14 , 15 , 16 10,11,12,14,15,16。 数据规模与约定 对于 100 % 100% 的数据, 1 ≤ x ≤ y ≤ 100 1≤x≤y≤100, x ≤ a ≤ y x≤a≤y, x ≤ b x≤b。 C++程序(138点数解答 | 2025-07-19 20:44:46)328
- [字节豆包] 题目描述 输入四个整数 x , y , a , b x,y,a,b,请你按照要求输出 x ∼ y x∼y 之间的所有数。 要求: 不要输出数字 a a。 不要输出大于等于数字 b b 的数。 输入格式 输入包括一行,包含四个整数 x , y , a , b x,y,a,b,数字之间用空格隔开。 输出格式 输出包括一行,为 x ∼ y x∼y 之间符合要求的数字。 input1 复制 10 20 13 17 output1 复制 10 11 12 14 15 16 input2 复制 50 55 52 100 output2 复制 50 51 53 54 55 样例解释 对于样例 1 1: 样例要求输出 10 ∼ 20 10∼20 之间不是 13 13, 且小于 17 17 的数,故有 10 , 11 , 12 , 14 , 15 , 16 10,11,12,14,15,16。 数据规模与约定 对于 100 % 100% 的数据, 1 ≤ x ≤ y ≤ 100 1≤x≤y≤100, x ≤ a ≤ y x≤a≤y, x ≤ b x≤b。c++ (304点数解答 | 2025-10-25 20:12:27)72
- [字节豆包] 题目描述 现有 n n 个正整数,乌拉乎想要统计出这些数中与指定的数字 x x 相等的数的个数,请编写程序,实现对应功能吧。 输入格式 输入包含三行, 第一行,一个正整数 n n。 第二行,依次为 n n个 正整数 a [ i ] a[i]。 第三行,一个正整数 x x。 输出格式 输出为这 n n 个数与 x x 相等的数的个数。 input1 复制 3 4 6 2 2 output1 复制 1 input2 复制 5 3 1 1 2 3 1 output2 复制 2 数据规模与约定 对于 100 % 100% 的数据, 1 < n < 100 1<n<100, 1 ≤ a [ i ] , x ≤ 100 1≤a[i],x≤100。c++(358点数解答 | 2025-11-22 22:01:32)42