/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
static int max= 1000000 ;
static int spf[ ] = new int [ max+ 1 ] ;
static void createspf( )
{
for ( int i= 2 ; i<= max; i++ )
spf[ i] = i;
for ( int i
= 2 ; i
<= Math .
sqrt ( max
) ; i
++ ) {
if ( spf[ i] == i)
{
for ( int j= i* i; j<= max; j+= i)
{
if ( spf[ j] == j)
spf[ j] = i;
}
}
}
}
static Map
< Integer ,Integer
> primefactorization
( int n
) {
Map
< Integer , Integer
> pf
= new HashMap
<> ( ) ; while ( n!= 1 )
{
int val= spf[ n] ;
pf.put ( val,pf.getOrDefault ( val,0 ) + 1 ) ;
n/= val;
}
return pf;
}
{
// your code goes here
Scanner sc
= new Scanner
( System .
in ) ; createspf( ) ;
int n= sc.nextInt ( ) ;
int arr[ ] = new int [ n+ 1 ] ;
for ( int i= 1 ; i<= n; i++ )
arr[ i] = sc.nextInt ( ) ;
for ( int i= 1 ; i<= n; i++ )
{
Map
< Integer ,Integer
> primefact
= primefactorization
( arr
[ i
] ) ; System .
out .
println ( "the prime fact for " + arr
[ i
] + " is :" ) ;
for ( Map .
Entry < Integer ,Integer
> entry
: primefact.
entrySet ( ) ) System .
out .
println ( entry.
getKey ( ) + " power " + entry.
getValue ( ) ) ;
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXN0YXRpYyBpbnQgbWF4PTEwMDAwMDA7CglzdGF0aWMgaW50IHNwZltdPW5ldyBpbnRbbWF4KzFdOwoJc3RhdGljIHZvaWQgY3JlYXRlc3BmKCkKCXsKCQlmb3IoaW50IGk9MjtpPD1tYXg7aSsrKQoJCXNwZltpXT1pOwoJCQoJCWZvcihpbnQgaT0yO2k8PU1hdGguc3FydChtYXgpO2krKykKCQl7CgkJCWlmKHNwZltpXT09aSkKCQkJewoJCQkJZm9yKGludCBqPWkqaTtqPD1tYXg7ais9aSkKCQkJCXsKCQkJCQlpZihzcGZbal09PWopCgkJCQkJc3BmW2pdPWk7CgkJCQl9CgkJCX0KCQl9CgkJCgl9CgkKCXN0YXRpYyBNYXA8SW50ZWdlcixJbnRlZ2VyPiBwcmltZWZhY3Rvcml6YXRpb24oaW50IG4pCgl7CgkJTWFwPEludGVnZXIsIEludGVnZXI+IHBmPW5ldyBIYXNoTWFwPD4oKTsKCQl3aGlsZShuIT0xKQoJCXsKCQkJaW50IHZhbD1zcGZbbl07CgkJCXBmLnB1dCh2YWwscGYuZ2V0T3JEZWZhdWx0KHZhbCwwKSsxKTsKCQkJbi89dmFsOwoJCX0KCQkKCQlyZXR1cm4gcGY7Cgl9CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJU2Nhbm5lciBzYz1uZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCWNyZWF0ZXNwZigpOwoJCQoJCWludCBuPXNjLm5leHRJbnQoKTsKCQlpbnQgYXJyW109bmV3IGludFtuKzFdOwoJCWZvcihpbnQgaT0xO2k8PW47aSsrKQoJCWFycltpXT1zYy5uZXh0SW50KCk7CgkJCgkJZm9yKGludCBpPTE7aTw9bjtpKyspCgkJewoJCQlNYXA8SW50ZWdlcixJbnRlZ2VyPiBwcmltZWZhY3Q9cHJpbWVmYWN0b3JpemF0aW9uKGFycltpXSk7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigidGhlIHByaW1lIGZhY3QgZm9yICIrYXJyW2ldKyIgaXMgOiIpOwoJCQkKCQkJZm9yKE1hcC5FbnRyeTxJbnRlZ2VyLEludGVnZXI+IGVudHJ5OnByaW1lZmFjdC5lbnRyeVNldCgpKQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oZW50cnkuZ2V0S2V5KCkrIiBwb3dlciAiK2VudHJ5LmdldFZhbHVlKCkpOwoJCQkKCQkJCgkJfQoJCQoJCQoJCQoJfQp9