T603777 最小质因子
解题思路
这道题要求我们找出给定正整数 n 的最小质因子。最小质因子是指 n 的所有质因数中最小的那个数。例如:
-
36的质因数分解是2 × 2 × 3 × 3,最小质因子是2; -
89是质数,最小质因子是89本身。
关键步骤
-
输入处理:读取测试用例的数量
T,然后逐个处理每个n。 -
最小质因子查找:
-
从
2开始,逐个检查是否能整除n。 -
如果找到能整除
n的最小i,则i就是最小质因子。 -
如果遍历到
√n仍未找到因子,则n本身是质数,最小质因子就是n。
-
-
输出结果:对每个
n,输出其最小质因子。
#include<bits/stdc++.h> #define ll long long // 定义 long long 类型别名,方便处理大数 using namespace std; int main() { int t; // 测试用例的数量 cin >> t; // 输入 t while (t--) { // 处理每个测试用例 ll n; // 定义长整型变量 n cin >> n; // 输入 n int f = 0; // 标记是否找到最小质因子 for (ll i = 2; i <= sqrt(n); i++) { // 从 2 遍历到 √n if (n % i == 0) { // 如果 i 能整除 n cout << i << endl; // 输出 i(最小质因子) f = 1; // 标记已找到 break; // 提前终止循环 } } if (!f) { // 如果没有找到质因子(即 n 是质数) cout << n << endl; // 输出 n 本身 } } return 0; }

浙公网安备 33010602011771号