Project Euler にチャレンジ:Problem 39 C言語での解答

  
#include<stdio.h>

int main(void)
{
	int i = 0 ,j = 0 , m = 0 , n = 0 , tmp1 = 0 , tmp2 = 0 , tmp3 = 0 , tmp4 = 0;
	int answer = 0;
	int array[1001];
	for(i = 0 ; i <= 1000 ; i++)
	{
		array[i] = 0;
	}

	for(m = 2 ; m <= 22; m++)
	{
		for(n = 1 ; n < m ; n++)
		{
			tmp1 = m;
			tmp2 = n;
			tmp3 = 0;
			while(tmp1 % tmp2 != 0)
			{
				tmp3 = tmp1;
				tmp1 = tmp2;
				tmp2 = tmp3 % tmp2;
			}
			if(tmp2 == 1)
			{
				// 原始ピタゴラス数である
				tmp4 = 2 * m * (m + n);
				for(i = 1 ; i * tmp4 <= 1000 ; i++)
				{
					array[i * tmp4]++;
				}
			}
		}	
	}	
	for(i = 0 ; i <= 1000 ; i++)
	{
		if(j < array[i])
		{
			j = array[i];
			answer = i;
		}
	}
	printf("%d",answer);
}
問題文