Cod sursa(job #56930)

Utilizator me_andyAvramescu Andrei me_andy Data 30 aprilie 2007 20:11:56
Problema Divizori Primi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream.h>
#include<math.h>

 int x[1000000];
 long m[100000][7];
 long i,a,b,n;
 ifstream f("divprim.in");
 ofstream g("divprim.out");
void prime()
{
 long c=2,i;
 while(c<=1000)
 {
  for(i=2*c;i<=1000000;i+=c)
	x[i]++;
  do{ c++;
  }while (x[c]);
 }
}
void matrice()
{
 for(long i=1;i<=1000000;i++)
	for(int j=1;j<=7;j++)
	 {
   if(m[i][j-1]==0)
   {
       for(int k=j;k<=7;k++)
           m[i][k]=0;
           break;
     }      
     
  for(long k=i;k>=1;k--)
	  if(x[k]==j)
	  {
		m[i][j]=k;
		break;
	 }
}	 
}
int main()
{
 prime();
 matrice();
 f>>n;
 for(i=1;i<=n;i++)
 {
  f>>a;
  f>>b;
 	g<<m[a][b]<<"\n";
}                     
 f.close();
 g.close();
 return 0;
}