- 冯之几 的博客
1557(6.27作业T1)题解
- @ 2026-6-27 13:45:54
题解
-
这道题目的目标是找出一个数的素因子分解表达式.
- 我们首先需要确定一个数是否是质数,然后对给定的数进行分解。
- 这里,我们采用的方法是从2开始枚举质因子.
- 如果可以整除,我们就知道这是一个素因子,然后我们不断地除以这个因子,直到无法整除为止。
- 然后试除下一个数字。
- 重复这个过程,直到这个数被完全分解为止。
-
如何保证i是质数?
- i 是合数一定能分解成更小的质数,但是更小的质数已经被分离,故i如果能被整除就一定是质数。
#include<bits/stdc++.h>
using namespace std;
typedef long long shi_nian_oi_yi_chang_kong_bu_kai_long_long_jian_zu_zong;
shi_nian_oi_yi_chang_kong_bu_kai_long_long_jian_zu_zong n;
int main(){
cin>>n;
for(int i=2;i*i<=n;i++){
if(n%i==0){
int cnt=0;
while(n%i==0){
cnt++;
n/=i;
}
cout<<i;
if(cnt>1)cout<<'^'<<cnt;
if(n!=1) cout<<" * ";
}
}
if(n!=1)cout<<n;
return 0;
}
idk