T603777 最小质因子

解题思路

这道题要求我们找出给定正整数 n 的最小质因子。最小质因子是指 n 的所有质因数中最小的那个数。例如:

  • 36 的质因数分解是 2 × 2 × 3 × 3,最小质因子是 2

  • 89 是质数,最小质因子是 89 本身。

关键步骤

  1. 输入处理:读取测试用例的数量 T,然后逐个处理每个 n

  2. 最小质因子查找

    • 从 2 开始,逐个检查是否能整除 n

    • 如果找到能整除 n 的最小 i,则 i 就是最小质因子。

    • 如果遍历到 √n 仍未找到因子,则 n 本身是质数,最小质因子就是 n

  3. 输出结果:对每个 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;
}

 

posted @ 2025-05-07 19:58  CRt0729  阅读(84)  评论(0)    收藏  举报