Pagini recente » Cod sursa (job #1692981) | Cod sursa (job #377177) | Cod sursa (job #248586) | Cod sursa (job #2612463) | Cod sursa (job #160394)
Cod sursa(job #160394)
//Descompun in factori primi apoi incerc sa le aduc la puterea k
#include <cstdio>
#include <cstdlib>
#include <cstring>
void mul(int A[], int B)
{
int i, t = 0;
for (i = 1; i <= A[0] || t; i++, t /= 10)
A[i] = (t += A[i] * B) % 10;
A[0] = i - 1;
}
int prime[100];
int main( int argc, char *argv[] )
{
int n, k;
memset( prime, 0, sizeof( prime ) );
FILE *fin = fopen( "factoriale.in", "r" );
fscanf( fin, "%d %d", &n, &k );
for ( int i = 0; i < n; i++ )
{
int x;
fscanf( fin, "%d", &x );
for ( int k = 2; k <= x; k++ )
{
int xx = k;
for ( int j = 2; j < 100 && xx > 1; j++ )
while ( xx % j == 0 )
{
prime[j]++;
xx /= j;
}
}
}
fclose( fin );
int vec[10000];
vec[0] = 1;
vec[1] = 1;
for ( int i = 2; i < 100; i++ )
while ( prime[i] % k != 0 )
{
mul( vec, i );
prime[i]++;
}
FILE *fout = fopen( "factoriale.out", "w" );
for ( int i = vec[0]; i > 0; i-- )
fprintf( fout, "%d", vec[i] );
fprintf( fout, "\n" );
fclose( fout );
return 0;
}