读入一个自然数,将 n 分解为质因子连乘的形式输出。
有多组测试数据。输入的第一行是整数 T ( 0<T≤10000 ),表示测试数据的组数。每一组测试数据只有一行,包含待分解的自然数 n 。该行没有其它多余的符号。 1<n<231 。
对应每组输入,输出一行分解结果,具体样式参看样例。该行不能有其它多余的符号。
3 756 2 2093333998
756=2*2*3*3*3*7 2=2 2093333998=2*7*7*17*43*29221
分析:没什么说的,刚开始想写个素数打表。然后把表里的数拿来匹配。 用了sqrt,结果T。后面用i*i就过了 ,算是个坑
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define INF 1E4 * 1E9
#define pi acos(-1)
#define endl '\n'
#define me(x) memset(x,0,sizeof(x));
const int maxn=7e5+5;
const int maxx=1e7+5;
/*
3
756
2
2093333998*/
int a[maxx];
int main()
{
int T;
cin>>T;
while(T--)
{
int n;
cin>>n;
cout<<n<<"=";
int i=2,k=0;
while(i*i<=n)
{
if(n%i==0)
{
n/=i;
a[k++]=i;
i=1;
}
i++;
}
a[k++]=n;
for(int i=0;i<k;i++)
{
printf("%d%c",a[i],i==k-1?'\n':'*');
}
}
}