题目描述
假设x是一个正整数,它的值不超过65535(即1< x <= 65535),请编写一个程序,将x分解为若干个素数的乘积。
输入
输入的第一行含一个正整数k (1<=k<=10),表示测试例的个数,后面紧接着k行,每行对应一个测试例,包含一个正整数x。
输出
每个测试例对应一行输出,输出x的素数乘积表示式,式中的素数从小到大排列,两个素数之间用“*”表示乘法
示例输入
2 11 9828
示例输出
11 2*2*3*3*3*7*13
- #include <iostream>
- #include <algorithm>
- using namespace std;
- int main()
- {
- int T,n,m,j,k,i;
- cin>>T;
- for(i=1;i<=T;i++)
- {
- int coun=0;
- cin>>n;
- for(k=2;k<=n;)
- {
- if(n%k==0)
- {
- n=n/k;
- if(coun==0)
- cout<<k;
- else
- cout<<'*'<<k;
- coun++;
- }
- else
- k=k+1;
- }
- cout<<endl;
- }
- }