专栏文章
B3871 [GESP202309 五级] 因数分解 题解
题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mip19bwv
- 此快照首次捕获于
- 2025/12/03 04:31 3 个月前
- 此快照最后确认于
- 2025/12/03 04:31 3 个月前
B3871 [GESP202309 五级] 因数分解 题解
这道题使用了因式分解。
直接上代码:
CPP#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n,f=0;//f代表本因数是否是最小的质因数,如果是,不用在前面加 *
cin>>n;
for(ll i=2;i*i<=n;i++)//枚举数
{
if(n%i==0)//因数
{
if(f) cout<<" * ";//见上
cout<<i;//输出该质因数
f=1;
ll z=0;//指数个数
while(n%i==0)
{
n/=i;//每次都将所有一样的质因数除尽,保证下一次枚举到的因数都是质数
z++;//指数增加
}
if(z>1) cout<<'^'<<z;//如果指数为1则不需次方
}
}
if(n>1)//如果n大于1,说明并没有完全除尽,但这个数一定是质数,且指数为1
{
if(f) cout<<" * ";
cout<<n;
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...