链接:呵呵
数据比较小,直接暴力打个表。。。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int flag[70001];
int main()
{
int n, num = 0, st[7000];
for(int i = 2; i <= 70000; i++)
{
if(flag[i] == 0)
{
st[num++] = i;
for(int j = 2 * i; j <= 70000; j += i)
flag[j] = 1;
}
}
while(scanf("%d", &n) != EOF)
{
if(flag[n] == 0)
{
printf("%d\n", n);
continue;
}
int start = 0;
for(int i = 0; i < num; i++)
{
if(n == 1) break;
while(n % st[i] == 0 && n > 1)
{
if(start == 0)
{
printf("%d", st[i]);
start = 1;
}
else printf("*%d", st[i]);
n /= st[i];
}
}
puts("");
}
return 0;
}