10852 - Less Prime

#include <stdio.h>
int prime(int x);
long sum=1,store[50000];
int main()
    {
    long Number,N,N1,prime1,prime2[50000],a[50000],save[50000];
    scanf("%ld",&Number);
    for(long i3=1;i3<=Number;i3++)
       {
        scanf("%ld",&N);
        if(N%2==0)
           N1=N/2;
        else
            {
            int N2=N+1;
            N1=N2/2;
            }

        for(long i=N1;i<=N;i++)
           prime(i);

        for(int i=1;i<sum;i++)
           a[i]=store[i];

        int r=1;
        for(int i=1;i<sum;i++)
           {
           for(int p=1;p<=5;p++)
              {
              if((a[i]*p <= N) && (N < a[i]*(p+1)))
                {
                save[r]= N-p*a[i];
                prime2[r]= a[i];
                r=r+1;
                }
             }
          }

         long max=-99999;
         for(int i1=1;i1<r;i1++)
            {
            if(save[i1] > max )
              {
              max=save[i1];
              prime1=prime2[i1];
              }
           }
         printf("%ld\n",prime1);
         sum=1;
      }//End of First for loop
        }

       int prime(int x)
                {
                 int r,j;
                  r=(int)x/2;
                  for(j=2;j<=r;j++)
                  if(x%j==0)
                     break;
                   if(j==r+1)
                     {
                     store[sum]=x;
                     sum=sum+1;;
                      }
                 }

Comments

Popular posts from this blog

371 - Ackermann Functions

Create many folder with one click