Friday, February 18, 2011

11417 - GCD


#include<stdio.h>
#define M 501

int G[M];
int GCD(int,int);
int generate();

int main()
{
    int n;
    generate();
    //freopen("in.txt","r",stdin);
    while(scanf("%d",&n)&&n)
        printf("%d\n",G[n]);
    return 0;
}

int GCD(int a,int b)
{
    int c;
    while(a)
    {
        c=a;
        a=b%a;
        b=c;
    }
    return c;
}

int generate()
{
    int i,j;
    for(i=2;i<M;i++)
    {
        G[i]=G[i-1];
        for(j=1;j<i;j++)
            G[i]=G[i]+GCD(j,i);
    }
    return 0;
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.