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号
浙公网安备 33010602011771号