Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
84912 bnu_fanmeijie 质因数分解 C++ 通过 0 MS 248 KB 1032 2026-03-04 12:24:30

Tests(1/1):


#include<bits/stdc++.h> using namespace std; int main() { int n; cin >> n; for(int i = 2; i*i <= n; ++i) { if(n%i == 0)//第一个找到的n的因数i,一定是n的两个质因数中较小的质因数 { cout << n/i << endl;//n / i就是n的两个质因数中较大的质因数 return 0; } } return 0; } /* 题目中给的数字n是两个质数的乘积,n的范围最大能达到 2^9 除非二者相等,其它情况下,都是一个较小的质数乘以一个较大的质数。其中较小的质数一定小于等于n \sqrt{n} 显然,搜索较小的质因数更容易。 因为数字n是两个质数的乘积,因而数字n只能整除这两个质数。 循环变量i从2开始不断增大,判断n是否能被i整除(i是否是n的因数),如果是,那么i就是n的两个质因数中较小的质因数。那么较大的质因数就是n / i。 ———————————————— */


测评信息: