1.质因数分解
质因数分解,把n从1到sqrt(n) 进行分解,即,for循环枚举i,若i能整除n,则用while循环不断地除n,边除边分解,标记.但在某些情况下,最后必然分解不完,因此最后进行以此特判,即最后再分解一步即可.
#include<bits/stdc++.h>
using namespace std;
int main()
{
int s=0,n,t;
int ans[10000]={};
cin>>n;t=n;
for (int i=2;i*i<=n;i++)//相当与1-sqrt(n)枚举,这么做可以处理复杂的精度误差
if (n%i==0)
{
while (n%i==0)
{
ans[++s]=i;//储存分解质因子的答案
n=n/i;//对n除以i,知道不能除为止
}
}
if (n>2) ans[++s]=n;//若最后没有分解完
if (s==1) cout<<t<<'='<<ans[1];
else if (s==2) cout<<t<<'='<<ans[1]<<'*'<<ans[2];
else for (int i=1;i<=s;i++)
{
if (i==1) cout<<t<<'='<<ans[1<