Cod sursa(job #137215)

Utilizator vlad_olteanVladimir Oltean vlad_oltean Data 17 februarie 2008 10:17:52
Problema Factoriale Scor 10
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasa a 9-a Marime 0.72 kb
#include<fstream.h>
#include<iostream.h>

int main()
{
    int a,i,j;
    int xn,x;
    int n,k;
    int div[100]={0};
    int dmax=0;

    ifstream fin("factor~1.in");
    ofstream fout("factoriale.out");

    fin>>n>>k;

    for(a=0;a<n;a++)
    {    fin>>xn;
	 for(i=2;i<=xn;i++)
	 {    j=2; x=i;
	      while(x!=1)
	      {	   while(!(x%j))
		   {    x/=j;
			div[j]++;
			if(dmax<j) dmax=j;
		   }
	      j++; }
	 }
    }

    int plus=1;

    if(div[2]%k) plus=2*(div[2]+div[2]%k);
    for(i=3;i<=dmax;i+=2)
	 if(div[i])
	      if(div[i]%k)
	      {    j=1;
		   while(div[i+j]%k) j++;
		   plus*=i*j;
	      }

    fout<<plus<<endl;

    fin.close();
    fout.close();
    return 0;
}