#include <stdio.h>

int main(void) {
    int y,m,d;
	const int dmax[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	y=2013;
	for(m=1;m<=12;m++) {
		for(d=1;d<dmax[m-1];d++) {
			int now=y*10000+m*100+d;
			int now2;
			int i,count;
			int equalprinted=0;
			printf("%8d",now);
			now2=now;
			for(count=0;now2%2==0;count++)now2/=2;
			if(count>0) {
				printf(" = 2");
				if(count>1)printf("^%d",count);
				equalprinted=1;
			}
			for(i=3;i*i<=now2 && i<now2;i+=2) {
				for(count=0;now2%i==0;count++)now2/=i;
				if(count>0) {
					printf(" %c %d",equalprinted?'*':'=',i);
					if(count>1)printf("^%d",count);
					equalprinted=1;
				}
			}
			if(!equalprinted) {
				printf(": 素数");
			} else if(now2>1) {
				printf(" * %d",now2);
			}
			putchar('\n'); 
		}
	}
	return 0;
}