1. 


/**
* Angewandte Mathematik, SS09, IFB 2C
* ACM Problem 160 Factors and Factorials
* Link: http://icpcres.ecs.baylor.edu/onlinejudge/index.php?option=com_onlinejudge&Itemid=8&category=3&page=show_problem&problem=96
*
* @author Miesel Christoph
* @author Seilbeck Robert
* @author Wolfram Andre
* @version X.0, 03/30/2009
*
* Status : Accepted
* Runtime: 0.090
*/

import java.io.*;


class Main
{
/*************************************************************************
* Funktion, die testet, ob es sich um eine Primzahl handelt oder nicht *
*************************************************************************/

static boolean primzahltest(int aNumber)
{
boolean isPrim = true;
if(aNumber==2) isPrim = true;
else
{
if(aNumber%2==0) isPrim = false;
for(int i = 3; i<=Math.sqrt(aNumber); i+=2)
{
if(aNumber%i==0) isPrim = false;
}
}
return isPrim;
}



public static void main(String[] args) throws Exception
{

// Einlesevorgang
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();
int value=-1;

value = Integer.parseInt(line);

int divisor = 2;
int quotient;
int counter = 0;

int stringCounter = 0;

while(value != 0)
{
System.out.printf("%3d! =",value);
if(value == 1)
{
System.out.printf(" 0");
}
while(divisor <= value)
{


/**************************************************************************
* DIVISOR-SETTING! Absicherung, dass der Divisor immer eine Primzahl ist *
**************************************************************************/

while(!primzahltest(divisor)) {divisor++;}
if(divisor > value)break;

/******************************************
* Alle Faktoren werden hier durchlaufen *
* und durch den aktuellen Divisor divi- *
* diert... *
******************************************/

for(int i = 2; i<=value; i++)
{
quotient = i;
while(quotient%divisor == 0)
{
counter++;
quotient /= divisor;
}
}

/****************************************
* Standard-Ausgabe, mit Formatierung *
****************************************/
if(stringCounter == 16) {stringCounter = 0;System.out.printf("%n ");}
System.out.printf("%3d",counter);
stringCounter++;

divisor++;
counter = 0;



}
System.out.printf("%n");

stringCounter = 1;

line = reader.readLine();

value = Integer.parseInt(line);

counter = 0;
divisor = 2;

}
}
}