

One form of   Pythagorean quadruples   is   (for positive integers   a,   b,   c,   and   d):



    a2   +   b2   +   c2     =     d2 


An example:

    22   +   32   +   62     =     72 
 which is:
    4    +   9    +   36     =     49 


Task

For positive integers up   2,200   (inclusive),   for all values of   a,  
b,   c,   and   d,

find   (and show here)   those values of   d   that   can't   be represented.

Show the values of   d   on one line of output   (optionally with a title).



Related tasks

   Euler's sum of powers conjecture. 
   Pythagorean triples.


Reference

   the Wikipedia article:   Pythagorean quadruple.


' version 12-08-2017
' compile with: fbc -s console
 
#Define max 2200
 
Dim As UInteger l, m, n, l2, l2m2
Dim As UInteger limit = max * 4 \ 15
Dim As UInteger max2 = limit * limit * 2
ReDim As Ubyte list_1(max2), list_2(max2 +1)
 
' prime sieve, list_2(l) contains a 0 if l = prime  
For l = 4 To max2 Step 2
    list_1(l) = 1
Next
For l = 3 To max2 Step 2
    If list_1(l) = 0 Then
        For m = l * l To max2 Step l * 2
            list_1(m) = 1
        Next
    End If
Next
 
' we do not need a and b (a and b are even, l = a \ 2, m = b \ 2)
' we only need to find d
For l = 1 To limit
    l2 = l * l
    For m = l To limit
        l2m2 = l2 + m * m
        list_2(l2m2 +1) = 1
        ' if l2m2 is a prime, no other factors exits
        If list_1(l2m2) = 0 Then Continue For
        ' find possible factors of l2m2
        ' if l2m2 is odd, we need only to check the odd divisors
        For n = 2 + (l2m2 And 1) To Fix(Sqr(l2m2 -1)) Step 1 + (l2m2 And 1)
            If l2m2 Mod n = 0 Then
                ' set list_2(x) to 1 if solution is found
                list_2(l2m2 \ n + n) = 1
            End If
        Next
    Next
Next
 
For l = 1 To max
    If list_2(l) = 0 Then Print l; " ";
Next
Print
 
' empty keyboard buffer 
While InKey <> "" : Wend
Print : Print "hit any key to end program"
Sleep
End