很简单的一道题目,
分享我的代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#define MAXN 100000
bool p[MAXN];
int main()
{
memset(p,1,sizeof(p));
p[1]=0;
for(int i=4;i<=MAXN;i+=2)
p[i]=0;
for(i=3;i<=sqrt(MAXN*1.0);i+=2)
{
int k=i<<1;
for(int j=i*i;j<=MAXN;j+=k)
p[j]=0;
}//筛选素数
int N;
while(scanf("%d",&N)!=EOF)
{
if(p[N])
printf("%d\n",N);
else
{
int t=N;
int flag=1;
for(int i=2;i<=sqrt(t*1.0);i++)
{
while(t%i==0)
{
printf(flag==1?"%d":"*%d",i);
flag++;
t/=i;
}
}
if(t!=1)
printf("*%d",t);
printf("\n");
}
}
return 0;
}