#include<stdio.h>
#include<iostream>
#include<map>
#include<algorithm>
#include<string.h>
using namespace std;
int a[10000+100];
int main()
{
int n,c,i,p,d,num;
map<int,int> m;
scanf("%d",&n);
memset(a,0,sizeof(a));
for(i=2;i<=n;i++)
{
if(a[i]==0)
{
p=2;c=0;num=i*p;
while(num<=n)
{
a[num]=1;
d=num;
while(d%i==0)
{
d=d/i;
c++;
}
p++;
num=i*p;
}
m[i]=c+1;
}
}
map<int,int>::iterator it;
for(it=m.begin();it!=m.end();it++)
{if(it!=m.begin())
printf(" * ");
printf("%d^%d",it->first,it->second);
}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPG1hcD4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxzdHJpbmcuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGFbMTAwMDArMTAwXTsKaW50IG1haW4oKQp7CmludCBuLGMsaSxwLGQsbnVtOwptYXA8aW50LGludD4gbTsKc2NhbmYoIiVkIiwmbik7Cm1lbXNldChhLDAsc2l6ZW9mKGEpKTsKZm9yKGk9MjtpPD1uO2krKykKewppZihhW2ldPT0wKQp7CnA9MjtjPTA7bnVtPWkqcDsKd2hpbGUobnVtPD1uKQp7CmFbbnVtXT0xOwpkPW51bTsKd2hpbGUoZCVpPT0wKQp7CmQ9ZC9pOwpjKys7Cn0KcCsrOwpudW09aSpwOwp9Cm1baV09YysxOwp9Cn0KbWFwPGludCxpbnQ+OjppdGVyYXRvciBpdDsKZm9yKGl0PW0uYmVnaW4oKTtpdCE9bS5lbmQoKTtpdCsrKQp7aWYoaXQhPW0uYmVnaW4oKSkKcHJpbnRmKCIgKiAiKTsKcHJpbnRmKCIlZF4lZCIsaXQtPmZpcnN0LGl0LT5zZWNvbmQpOwp9CnJldHVybiAwOwp9