0 4 7 -11 -17 19 1 3 7 11 -13 2 4 5 7 17 -19 3 4 2 -7 -11 13 4 1 2 5 2 3 -2 6 ? 7 ? 8 4 3 -7 -11 13 9 1 3 10 4 3 7 11 -13 11 4 -2 -3 -5 7 12 3 -2 -3 5 13 2 3 2 14 4 -3 -5 -11 13 15 3 -3 -5 7 16 2 5 -3 17 ? 18 ? 19 4 2 -3 -5 7 20 3 2 -3 5 21 2 5 -2 22 4 -5 -11 -19 23 23 3 -5 -11 13 24 2 7 -5 25 1 5 26 4 5 7 11 -13 27 4 2 -5 -11 13 28 3 2 -5 7 29 2 5 2 30 3 -2 3 5 31 ? 32 4 3 -5 -11 13 33 3 3 -5 7 34 2 5 3 35 4 -2 -3 -11 13 36 3 -2 -3 7 37 4 2 3 -5 7 38 3 2 3 5 39 3 -3 -11 13 40 2 7 -3 41 ? 42 ? 43 4 2 -3 -11 13 44 3 2 -3 7 45 2 7 -2 46 4 -5 -7 -13 17 47 3 -5 -7 11 48 2 13 -11 49 1 7 50 4 7 11 13 -17 51 4 2 -5 -7 11 52 3 2 -11 13 53 2 7 2 54 3 -2 3 7 55 ? 56 4 3 -5 -7 11 57 3 3 -11 13 58 2 7 3 59 4 -2 -3 -7 11 60 ? 61 4 -2 -3 5 7 62 3 2 3 7 63 3 -3 -7 11 64 4 -3 5 -11 13 65 3 -3 5 7 66 ? 67 4 2 -3 -7 11 68 3 -2 -7 11 69 4 2 -3 5 7 70 3 -2 5 7 71 3 -7 -13 17 72 2 11 -7 73 3 5 -11 13 74 2 7 5 75 4 2 -7 -13 17 76 3 2 -7 11 77 4 -2 3 -7 11 78 3 2 5 7 79 4 -2 3 5 7 80 4 3 -7 -13 17 81 3 3 -7 11 82 4 3 5 -11 13 83 3 3 5 7 84 ? 85 4 2 3 -7 11 86 4 -3 -5 -7 13 87 3 -3 -5 11 88 4 -3 5 -7 11 89 ? 90 ? 91 4 2 -3 -5 11 92 3 -2 -5 11 93 4 -2 5 -7 11 94 4 -5 -7 -11 17 95 3 -5 -7 13 96 2 11 -5 97 3 5 -7 11 98 4 5 19 71 -73 99 4 2 -5 -7 13 100 3 2 -5 11 101 4 -2 3 -5 11 102 ? 103 ? 104 4 3 -5 -7 13 105 3 3 -5 11 106 4 3 5 -7 11 107 4 -2 -3 -7 13 108 3 -2 -3 11 109 4 2 3 -5 11 110 4 -3 -7 -11 17 111 3 -3 -7 13 112 2 11 -3 113 ? 114 ? 115 4 2 -3 -7 13 116 3 2 -3 11 117 2 11 -2 118 4 -5 -7 -13 19 119 3 -7 -11 17 120 2 13 -7 121 1 11 122 4 5 7 -11 13 123 4 2 -7 17 -11 124 3 2 -7 13 125 2 11 2 126 3 -2 3 11 127 ? 128 4 3 -7 17 -11 129 3 3 -7 13 130 2 11 3 131 4 -2 -3 -5 13 132 ? 133 4 -2 -3 5 11 134 3 2 3 11 135 3 -3 -5 13 136 4 -3 -5 7 11 137 3 -3 5 11 138 ? 139 4 2 -3 -5 13 140 3 -2 -5 13 141 4 2 -3 5 11 142 3 -2 5 11 143 3 -5 -11 17 144 2 13 -5 145 3 -5 7 11 146 2 11 5 147 4 2 -5 -11 17 148 3 2 -5 13 149 4 -2 3 -5 13 150 3 2 5 11 151 4 -2 3 5 11 152 4 3 -5 -11 17 153 3 3 -5 13 154 4 3 -5 7 11 155 3 3 5 11 156 3 -2 -3 13 157 4 2 3 -5 13 158 4 -3 -5 -13 19 159 3 -3 -11 17 160 2 13 -3 161 3 -3 7 11 162 ? 163 4 2 -3 -11 17 164 3 2 -3 13 165 2 13 -2 166 3 -2 7 11 167 3 -5 -13 19 168 2 17 -11 169 1 13 170 2 11 7 171 4 2 -5 19 -13 172 3 2 -11 17 173 2 13 2 174 3 2 7 11 175 4 -2 3 7 11 176 4 3 -5 19 -13 177 3 3 -11 17 178 2 13 3 179 3 3 7 11 180 ? 181 4 -2 -3 5 13 182 3 2 3 13 183 3 -3 -13 19 184 4 -3 -5 7 13 185 3 -3 5 13 186 4 -3 5 7 11 187 4 2 -3 -13 19 188 3 -2 -13 19 189 4 2 -3 5 13 190 3 -2 5 13 191 3 -7 -11 19 192 2 19 -13 193 3 -5 7 13 194 2 13 5 195 3 5 7 11 196 3 2 -13 19 197 4 -2 3 -13 19 198 3 2 5 13 199 3 2 5 7 200 4 3 -7 19 -11 Fortran program: C Representation of n by sum of distinct prime squares C with minimum number of terms C C Hugo Pfoertner http://www.pfoertner.org C C Oct 22 2003 Initial version C implicit integer (a-z) parameter (m=200,mp=200) dimension p(mp),a(0:m,5),c(0:m),s(mp) do 5 i = 0, m c(i)=0 do 6 k = 1, 5 6 a(i,k)=0 5 continue c create primes p(1)=2 s(1)=4 c(4)=1 a(4,1)=2 p(2)=3 s(2)=9 c(9)=1 a(9,1)=3 p(3)=5 s(3)=25 c(25)=1 a(25,1)=5 p(4)=7 s(4)=49 c(49)=1 a(49,1)=7 l = 4 do 10 i = 11, 2000000001, 2 if ( isprim(i) ) then l = l + 1 if ( l .gt. mp ) goto 11 p(l) = i s(l) = i*i if ( s(l) .le. m ) then c(s(l)) = 1 a(s(l),1) = p(l) endif endif 10 continue 11 continue C C Two primes do 200 i = 2, 15 C Sum do 210 j = 1, i-1 sum = s(i) + s(j) if ( sum .gt. m ) goto 211 if ( c(sum) .eq. 0 ) then c(sum) = 2 a(sum,1) = p(i) a(sum,2) = p(j) endif 210 continue 211 continue 200 continue C C Difference do 250 i = 2, mp if ( p(i) .gt. m/2+1 ) goto 251 do 260 j = i-1, 1, -1 sum = s(i) - s(j) if ( sum .gt. m ) goto 261 if ( c(sum) .eq. 0 ) then c(sum) = 2 a(sum,1) = p(i) a(sum,2) = -p(j) endif 260 continue 261 continue 250 continue 251 continue C C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. C Three primes C Sum do 310 i = 1, 15 do 320 j = 1, 15 if ( j .eq. i ) goto 320 sij = s(i) + s(j) if ( sij .gt. m ) goto 321 do 330 k = 1, 15 if ( k.eq.j ) goto 330 if ( k.eq.i ) goto 330 sum = sij + s(k) if ( sum .gt. m ) goto 331 if ( c(sum) .eq. 0 ) then c(sum) = 3 a(sum,1)=p(i) a(sum,2)=p(j) a(sum,3)=p(k) endif 330 continue 331 continue 320 continue 321 continue 310 continue C Differences do 340 i = 1, mp do 350 j = 1, mp if ( j .eq. i ) goto 350 do 360 k = 1, mp if ( k .eq. i ) goto 360 if ( k .eq. j ) goto 360 C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. sum = s(i) + s(j) - s(k) if ( abs(sum) .gt. m ) goto 361 if ( sum .ge. 0 ) then if ( c(sum) .eq. 0 ) then c(sum) = 3 a(sum,1)=p(i) a(sum,2)=p(j) a(sum,3)=-p(k) endif else if ( c(-sum) .eq. 0 ) then c(-sum) = 3 a(-sum,1)=-p(i) a(-sum,2)=-p(j) a(-sum,3)=p(k) endif endif C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. 361 continue sum = s(i) - s(j) - s(k) if ( abs(sum) .gt. m ) goto 362 if ( sum .ge. 0 ) then if ( c(sum) .eq. 0 ) then c(sum) = 3 a(sum,1)=p(i) a(sum,2)=-p(j) a(sum,3)=-p(k) endif else if ( c(-sum) .eq. 0 ) then c(-sum) = 3 a(-sum,1)=-p(i) a(-sum,2)=p(j) a(-sum,3)=p(k) endif endif C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. 362 continue sum = s(i) - s(j) + s(k) if ( abs(sum) .gt. m ) goto 360 if ( sum .ge. 0 ) then if ( c(sum) .eq. 0 ) then c(sum) = 3 a(sum,1)=p(i) a(sum,2)=-p(j) a(sum,3)=p(k) endif else if ( c(-sum) .eq. 0 ) then c(-sum) = 3 a(-sum,1)=-p(i) a(-sum,2)=p(j) a(-sum,3)=-p(k) endif endif 360 continue 350 continue 340 continue C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. C Four primes C Sum do 410 i = 1, 15 do 420 j = 1, 15 if ( j .eq. i ) goto 420 sij = s(i) + s(j) if ( sij .gt. m ) goto 421 do 430 k = 1, 15 if ( k.eq.j ) goto 430 if ( k.eq.i ) goto 430 sijk = sij + s(k) if ( sijk .gt. m ) goto 431 do 440 l = 1, 15 if ( l.eq.k ) goto 440 if ( l.eq.j ) goto 440 if ( l.eq.i ) goto 440 sum = sijk + s(l) if ( sum .gt. m ) goto 441 if ( c(sum) .eq. 0 ) then c(sum) = 3 a(sum,1)=p(i) a(sum,2)=p(j) a(sum,3)=p(k) a(sum,4)=p(l) write (*,*) 4, sum, (a(sum,ii),ii=1,4) endif 440 continue 441 continue 430 continue 431 continue 420 continue 421 continue 410 continue C Differences do 450 i = 1, mp do 460 j = 1, mp if ( j .eq. i ) goto 460 do 470 k = 1, mp if ( k .eq. i ) goto 470 if ( k .eq. j ) goto 470 do 480 l = 1, mp if ( l .eq. i ) goto 480 if ( l .eq. j ) goto 480 if ( l .eq. k ) goto 480 C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. sum = s(i) + s(j) + s(k) - s(l) if ( abs(sum) .gt. m ) goto 481 if ( sum .ge. 0 ) then if ( c(sum) .eq. 0 ) then c(sum) = 4 a(sum,1)=p(i) a(sum,2)=p(j) a(sum,3)=p(k) a(sum,4)=-p(l) write (*,*) 4, sum, (a(sum,ii),ii=1,4) endif else if ( c(-sum) .eq. 0 ) then c(-sum) = 4 a(-sum,1)=-p(i) a(-sum,2)=-p(j) a(-sum,3)=-p(k) a(-sum,4)=p(l) write (*,*) 4, -sum, (a(-sum,ii),ii=1,4) endif endif C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. 481 continue sum = s(i) + s(j) - s(k) + s(l) if ( abs(sum) .gt. m ) goto 482 if ( sum .ge. 0 ) then if ( c(sum) .eq. 0 ) then c(sum) = 4 a(sum,1)=p(i) a(sum,2)=p(j) a(sum,3)=-p(k) a(sum,4)=p(l) write (*,*) 4, sum, (a(sum,ii),ii=1,4) endif else if ( c(-sum) .eq. 0 ) then c(-sum) = 4 a(-sum,1)=-p(i) a(-sum,2)=-p(j) a(-sum,3)=p(k) a(-sum,4)=-p(l) write (*,*) 4, -sum, (a(-sum,ii),ii=1,4) endif endif C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. 482 continue sum = s(i) - s(j) + s(k) + s(l) if ( abs(sum) .gt. m ) goto 483 if ( sum .ge. 0 ) then if ( c(sum) .eq. 0 ) then c(sum) = 4 a(sum,1)=p(i) a(sum,2)=-p(j) a(sum,3)=p(k) a(sum,4)=p(l) write (*,*) 4, sum, (a(sum,ii),ii=1,4) endif else if ( c(-sum) .eq. 0 ) then c(-sum) = 4 a(-sum,1)=-p(i) a(-sum,2)=p(j) a(-sum,3)=-p(k) a(-sum,4)=-p(l) write (*,*) 4, -sum, (a(-sum,ii),ii=1,4) endif endif C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. 483 continue sum = - s(i) + s(j) + s(k) + s(l) if ( abs(sum) .gt. m ) goto 484 if ( sum .ge. 0 ) then if ( c(sum) .eq. 0 ) then c(sum) = 4 a(sum,1)=-p(i) a(sum,2)=p(j) a(sum,3)=p(k) a(sum,4)=p(l) write (*,*) 4, sum, (a(sum,ii),ii=1,4) endif else if ( c(-sum) .eq. 0 ) then c(-sum) = 4 a(-sum,1)=p(i) a(-sum,2)=-p(j) a(-sum,3)=-p(k) a(-sum,4)=-p(l) write (*,*) 4, -sum, (a(-sum,ii),ii=1,4) endif endif C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. 484 continue sum = s(i) + s(j) - s(k) - s(l) if ( abs(sum) .gt. m ) goto 485 if ( sum .ge. 0 ) then if ( c(sum) .eq. 0 ) then c(sum) = 4 a(sum,1)=p(i) a(sum,2)=p(j) a(sum,3)=-p(k) a(sum,4)=-p(l) write (*,*) 4, sum, (a(sum,ii),ii=1,4) endif else if ( c(-sum) .eq. 0 ) then c(-sum) = 4 a(-sum,1)=-p(i) a(-sum,2)=-p(j) a(-sum,3)=p(k) a(-sum,4)=p(l) write (*,*) 4, -sum, (a(-sum,ii),ii=1,4) endif endif C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. 485 continue sum = s(i) - s(j) + s(k) - s(l) if ( abs(sum) .gt. m ) goto 480 if ( sum .ge. 0 ) then if ( c(sum) .eq. 0 ) then c(sum) = 4 a(sum,1)=p(i) a(sum,2)=-p(j) a(sum,3)=p(k) a(sum,4)=-p(l) write (*,*) 4, sum, (a(sum,ii),ii=1,4) endif else if ( c(-sum) .eq. 0 ) then c(-sum) = 4 a(-sum,1)=-p(i) a(-sum,2)=p(j) a(-sum,3)=-p(k) a(-sum,4)=p(l) write (*,*) 4, -sum, (a(-sum,ii),ii=1,4) endif endif C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. 486 continue sum = s(i) - s(j) - s(k) + s(l) if ( abs(sum) .gt. m ) goto 480 if ( sum .ge. 0 ) then if ( c(sum) .eq. 0 ) then c(sum) = 4 a(sum,1)=p(i) a(sum,2)=-p(j) a(sum,3)=-p(k) a(sum,4)=p(l) write (*,*) 4, sum, (a(sum,ii),ii=1,4) endif else if ( c(-sum) .eq. 0 ) then c(-sum) = 4 a(-sum,1)=-p(i) a(-sum,2)=p(j) a(-sum,3)=p(k) a(-sum,4)=-p(l) write (*,*) 4, -sum, (a(-sum,ii),ii=1,4) endif endif 480 continue 470 continue 460 continue 450 continue C...+....1....+....2....+....3....+....4....+....5....+....6....+....7.. do 900 i = 0, m if ( c(i) .ne. 0 ) then write (*,1000) i, c(i), (a(i,k),k=1,c(i)) 1000 format (i4, i2, 4i4) else write (*,1001) i 1001 format (i4, ' ?') endif 900 continue end