<?php
function ulam_diag($N)
{
	$result = array();
	
	if ($N % 2 == 0) {
		for ($n = 0; $n < $N / 2; $n++) {
			$result[] = 4*$n*$n + 2*$n + 1;
			$result[] = 4*$n*$n + 4*$n + 2;
			$result[] = 4*$n*$n + 8*$n + 4;
			$result[] = 4*$n*$n + 6*$n + 3;
		}
	} else {
		$result[] = 1;
		for ($n = 1; $n <= ($N - 1) / 2; $n++) {
			$result[] = 4*$n*$n + 2*$n + 1;
			$result[] = 4*$n*$n + 4*$n + 1;
			$result[] = 4*$n*$n + 1;
			$result[] = 4*$n*$n - 2*$n + 1;			
		}
	}
	
	sort($result);
	return $result;
}

print_r(ulam_diag(4));
print_r(ulam_diag(3));
?>