Cod sursa(job #291137)

Utilizator ktalyn93Catalin ktalyn93 Data 29 martie 2009 14:07:48
Problema Divizori Primi Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <stdio.h>
int n,j,l,i,t;
char nd[1000001];
int ciur(int n)
{
   
    int k=0,c,i,i1 ;
    for(i=3;i<=n;i+=2)
     nd[i]=0;
    if(n%2==0)
     k++;
    for (i = 3; i <= n; i += 2) 
      if (nd[i] == 0) 
      {
        for (c = i + i + i; c <= n; c += i << 1) 
          nd[c] = 1;
      if(n%i==0)
         k++;     
        }
     return k;
}
int main()
{
    freopen("divprim.in","r",stdin);
    freopen("divprim.out","w",stdout);
    scanf("%d",&t);
    for(i=1;i<=t;i++)
    {
                     scanf("%d %d",&n,&j);
                     int g=0;
                     for(l=n;l>=1;l--)
                      if(ciur(l)==j)
                       {
                                    printf("%d\n",l);
                                    g=1;
                                    break;
                       }
                      if(g==0)
                       printf("0\n");
    }
    return 0;
}