11827 - Maximum GCD

#include<stdio.h>
#include<string.h>
int arr[150];
char str[5000];
int G(int a,int b)
{
    int temp,gcd;
    while(b!=0)
    {
        temp=b;
        b=a%b;
        a=temp;
    }
    gcd=a;
    return gcd;
}
int main()
{
    int a,n,i,j,k,l,gcd,maximum,rem;
    scanf("%d",&n);
    getchar();
    while(n--)
    {
        i=0;
        gets(str);
        int len=strlen(str);
        for(l=0;l<len;l++)
        {
            rem=0;
            while(str[l]>='0'&&str[l]<='9')
            {
                a=rem*10+str[l]-48;
                rem=a;
                l++;
            }
            arr[i++]=a;
        }
        maximum=0;
        for(j=0; j<i; j++)
        {
            for(k=j; k<i-1; k++)
            {
                gcd=G(arr[j],arr[k+1]);
                if(gcd>maximum)
                {
                    maximum=gcd;
                }
            }
        }
        printf("%d\n",maximum);
        memset(arr,0,sizeof(arr));
        memset(str,'\0',sizeof(str));
    }
    return 0;
}

0 comments: (+add yours?)