Pagini recente » Cod sursa (job #1634400) | Cod sursa (job #384349) | Cod sursa (job #661607) | Cod sursa (job #1547164) | Cod sursa (job #3154220)
#include <fstream>
using namespace std;
ifstream cin("factoriale.in");
ofstream cout("factoriale.out");
long long n , k ;
long long prime [] = { 2 ,3 ,5, 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 , 61 , 67 , 71 , 73 , 79 , 83 , 89 , 97};
long long numere [ 101 ] [ 26 ] ;
long long tabel [ 26 ] ;
long long numar [ 100005 ];
long long produs ( int x )
{
int t = 0 ;
for ( int i = 1; i <= numar [ 0 ] ; i ++ , t /= 10 )
{
t += numar [ i ] * x ;
numar [ i ] = t % 10 ;
}
for (;t;t/=10 )
numar [ ++numar [ 0 ] ] = t % 10 ;
}
int main()
{
cin >> n >> k ;
for ( int i = 1 ; i <= 100 ; i ++ )
{
long long b ;
for ( int j = 0 ; j < 25 ; j ++ )
{
long long d = i ;
while ( d % prime[j] == 0 )
{
numere [i ] [ j ] ++ ;
d /= prime[j] ;
}
numere [ i ] [ j ] += numere [ i - 1 ] [ j ] ;
}
}
for ( int i = 1; i <= n ; i ++ )
{
long long b ;
cin >> b;
for ( int j = 0 ; j < 25 ; j ++ )
{
tabel [ j ] += numere[ b ] [ j ];
}
}
numar [ 0 ] = 1;
numar [ 1 ] = 1;
for ( int i = 0 ; i < 25 ; i ++ )
{
long long j = tabel [ i ] ;
while ( j % k != 0)
{
produs ( prime [ i ]) ;
j ++ ;
}
}
for ( int i = numar [ 0 ] ; i >= 1 ; i -- )
cout << numar [ i ];
return 0;
}