
void yinshu_f(int *yinshu,int *n,int num)
{
for(int j=2;j<=num;++j)
{
if(num%j==0)
{
int flag=0;
for(int k=2;k<=sqrt(j);++k)
{
if(j%k==0)
{
flag=1;
break;
}
}
if(flag==0)
{
yinshu[(*n)++]=j;
//printf("%d\n",j);
yinshu_f(yinshu,n,num/j);
return ;
}
}
}
}
int main()
{
int n,num;
int i=0;
scanf("%d",&n);
int yinshu[100],len=0;
for(i=0;i<n;++i)
{
scanf("%d",&num);
yinshu_f(yinshu,&len,num);
printf("%d=",num);
for(int i=0;i<len;++i)
{
printf("%d",yinshu[i]);
if(i!=len-1)
printf("*");
else
printf("\n");
}
len=0;
}
return 0;
}
#include <stdio.h>
int main()
{
int n; // 用户输入的整数
int i; // 循环标志
scanf("%d", &n);
printf("%d=", n);
// n>=2才执行下面的循环
for (i = 2; i <= n; i++)
{
while (n != i)
{
if (n % i == 0)
{
printf("%d*", i);
n = n / i;
}
else
break;
}
}
printf("%d\n", n);
return 0;
}