The implementations start from a reduced arithmetic form of the Pythagorean quadrilateral counting problem. For an integer
$$n=\prod_{i=1}^{r} p_i^{e_i},$$
the number of admissible quadrilaterals associated with the exact parameter \(n\) depends only on the exponent vector \((e_1,\dots,e_r)\), not on the actual prime values. The quantity required by the problem is then the divisor-summatory version of that exact count, so the solution never enumerates quadrilaterals geometrically.
Once the reduction has been made, everything becomes multiplicative. The whole task is therefore to evaluate a short list of prime-power factors and combine them with fixed coefficients.
Let \(F(n)\) denote the exact-count function for one fixed arithmetic parameter \(n\), and let
$$S(n)=\sum_{d\mid n} F(d)$$
be the divisor-summatory quantity that the implementations actually evaluate. Because \(F(n)\) depends only on the exponents in the prime factorization of \(n\), it is convenient to work directly with those exponents.
If \(n=\prod p_i^{e_i}\), then every divisor \(d\mid n\) has the form
$$d=\prod_{i=1}^{r} p_i^{a_i},\qquad 0\le a_i\le e_i.$$
The reduced counting formula ignores the actual primes \(p_i\) and uses only the exponents. That means two integers with the same exponent profile give the same value of \(F\) and the same value of \(S\).
For one prime-power exponent \(e\), define the five local factors
$$B_1(e)=e+1,$$
$$B_2(e)=(e+1)^2,$$
$$B_3(e)=\left\lfloor\frac{(e+1)^2+1}{2}\right\rfloor,$$
$$B_4(e)=(e+1)^3,$$
$$B_5(e)=\frac{(e+1)(2e^2+4e+3)}{3}.$$
These are exactly the prime-power building blocks used by the reduced formula.
Since the local contributions factor over primes, the exact count is multiplicative and can be written as
$$F(n)=7\prod_{i=1}^{r} B_1(e_i)-14\prod_{i=1}^{r} B_2(e_i)-4\prod_{i=1}^{r} B_3(e_i)+8\prod_{i=1}^{r} B_4(e_i)+4\prod_{i=1}^{r} B_5(e_i).$$
The first factor \(B_1(e)=e+1\) is the familiar local contribution from the divisor-count function. The higher-degree factors encode the remaining symmetry classes that survive the reduction from geometry to arithmetic.
Nothing in this formula depends on the magnitudes of the primes themselves. Only the exponent vector matters.
The problem asks for the divisor-sum lift of \(F\), namely
$$S(n)=\sum_{d\mid n} F(d)=\sum_{0\le a_i\le e_i} F(a_1,\dots,a_r).$$
Because \(F\) is a fixed linear combination of products, the divisor sum separates prime by prime:
$$S(n)=7\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_1(a)\right)-14\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_2(a)\right)-4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_3(a)\right)+8\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_4(a)\right)+4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_5(a)\right).$$
So the entire divisor summation is absorbed into five closed-form cumulative factors.
Define
$$A_j(e)=\sum_{a=0}^{e} B_j(a).$$
Then the implementations use the closed forms
$$A_1(e)=\frac{(e+1)(e+2)}{2},$$
$$A_2(e)=\frac{(e+1)(e+2)(2e+3)}{6},$$
$$A_3(e)=\sum_{a=0}^{e}\left\lfloor\frac{(a+1)^2+1}{2}\right\rfloor=\frac{1}{2}\left(A_2(e)+\left\lfloor\frac{e}{2}\right\rfloor+1\right),$$
$$A_4(e)=\sum_{a=0}^{e}(a+1)^3=A_1(e)^2,$$
$$A_5(e)=\sum_{a=0}^{e}\frac{(a+1)(2a^2+4a+3)}{3}=\frac{(e+1)(e+2)(e^2+3e+3)}{6}.$$
The parity correction inside \(A_3(e)\) comes from the fact that odd squares contribute the extra \(+1\) when the integer division in \(B_3\) is written as a floor.
Substituting the cumulative factors into the separated divisor sum gives
$$\boxed{S(n)=7\prod_{i=1}^{r} A_1(e_i)-14\prod_{i=1}^{r} A_2(e_i)-4\prod_{i=1}^{r} A_3(e_i)+8\prod_{i=1}^{r} A_4(e_i)+4\prod_{i=1}^{r} A_5(e_i).}$$
This is the whole reason the computation is so small: all geometric counting has already been compressed into five multiplicative prime-power terms and their divisor-sum lifts.
For a quick exact-count checkpoint, a single prime square has exponent vector \((2)\). Then
$$B_1(2)=3,\quad B_2(2)=9,\quad B_3(2)=5,\quad B_4(2)=27,\quad B_5(2)=19,$$
so
$$F=7\cdot 3-14\cdot 9-4\cdot 5+8\cdot 27+4\cdot 19=167.$$
Now lift to the divisor sum for exponent vector \((2,1)\). The cumulative factors are
$$A_1(2)=6,\quad A_2(2)=14,\quad A_3(2)=8,\quad A_4(2)=36,\quad A_5(2)=26,$$
$$A_1(1)=3,\quad A_2(1)=5,\quad A_3(1)=3,\quad A_4(1)=9,\quad A_5(1)=7.$$
Therefore
$$\begin{aligned} S&=7(6\cdot 3)-14(14\cdot 5)-4(8\cdot 3)+8(36\cdot 9)+4(26\cdot 7)\\ &=126-980-96+2592+728\\ &=2370. \end{aligned}$$
This matches the checkpoint embedded in the implementations. Another checkpoint is \(S(1,1,1)=5535\).
The C++, Python, and Java implementations store the target exponent vector \((6,3,2,1,1,1,1,1)\) directly. No runtime factorization is needed, because the reduced arithmetic formula already depends only on these exponents.
Each implementation evaluates the five cumulative product terms \(\prod A_j(e_i)\), combines them with the coefficients \(7,-14,-4,8,4\), and prints the resulting exact integer. The structure is intentionally minimal: one generic product loop, five local formulas, and one final linear combination.
All arithmetic is exact. The C++ implementation uses unsigned 128-bit arithmetic, Python uses built-in arbitrary-precision integers, and Java uses arbitrary-precision integers as well. No floating-point calculations or geometric searches are involved.
If the exponent vector has length \(r\), each of the five product terms requires one pass over that vector. The total running time is therefore \(O(r)\), and the extra memory usage is \(O(1)\) beyond the fixed storage for the exponents and a few accumulator variables. In the target instance, \(r=8\), so the computation is effectively constant time.
Die Implementierungen beginnen bereits mit einer arithmetisch reduzierten Form des Zählproblems für pythagoreische Vierecke. Für eine ganze Zahl
$$n=\prod_{i=1}^{r} p_i^{e_i}$$
hängt die Anzahl der zulässigen Vierecke zum exakten Parameter \(n\) nur vom Exponentenvektor \((e_1,\dots,e_r)\) ab und nicht von den konkreten Primzahlen selbst. Gesucht ist anschließend nicht nur dieser exakte Wert, sondern seine Divisorsumme über alle Teiler von \(n\).
Darum erzeugt die Lösung keine geometrischen Konfigurationen. Nach der Reduktion bleibt nur eine multiplikative Formel auf Primzahlpotenzen übrig.
Sei \(F(n)\) die exakte Zählfunktion für einen festen arithmetischen Parameter \(n\), und sei
$$S(n)=\sum_{d\mid n} F(d)$$
die Divisorsumme, die tatsächlich berechnet wird. Da \(F(n)\) ausschließlich von den Exponenten in der Primfaktorzerlegung abhängt, arbeiten wir direkt mit diesen Exponenten.
Ist \(n=\prod p_i^{e_i}\), dann hat jeder Teiler \(d\mid n\) die Form
$$d=\prod_{i=1}^{r} p_i^{a_i},\qquad 0\le a_i\le e_i.$$
Die reduzierte Zählformel ignoriert die Primzahlen \(p_i\) selbst und verwendet nur die Exponenten. Zwei Zahlen mit demselben Exponentenprofil liefern daher denselben Wert von \(F\) und denselben Wert von \(S\).
Für einen einzelnen Primzahlpotenz-Exponenten \(e\) definieren wir fünf lokale Faktoren:
$$B_1(e)=e+1,$$
$$B_2(e)=(e+1)^2,$$
$$B_3(e)=\left\lfloor\frac{(e+1)^2+1}{2}\right\rfloor,$$
$$B_4(e)=(e+1)^3,$$
$$B_5(e)=\frac{(e+1)(2e^2+4e+3)}{3}.$$
Weil die lokalen Beiträge über verschiedene Primzahlen faktorisieren, ist die exakte Zählfunktion multiplikativ:
$$F(n)=7\prod_{i=1}^{r} B_1(e_i)-14\prod_{i=1}^{r} B_2(e_i)-4\prod_{i=1}^{r} B_3(e_i)+8\prod_{i=1}^{r} B_4(e_i)+4\prod_{i=1}^{r} B_5(e_i).$$
Der erste Faktor \(B_1(e)=e+1\) ist der bekannte lokale Beitrag der Teilerfunktion. Die übrigen Faktoren kodieren die zusätzlichen Symmetrieklassen, die nach der Reduktion von der Geometrie zur Arithmetik übrig bleiben.
Entscheidend ist: Die Größe der Primzahlen selbst spielt keine Rolle mehr, nur der Exponentenvektor.
Gesucht ist die Divisorsumme
$$S(n)=\sum_{d\mid n} F(d)=\sum_{0\le a_i\le e_i} F(a_1,\dots,a_r).$$
Da \(F\) eine feste Linearkombination von Produkten ist, trennt sich die Summe primweise:
$$S(n)=7\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_1(a)\right)-14\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_2(a)\right)-4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_3(a)\right)+8\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_4(a)\right)+4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_5(a)\right).$$
Damit verschwindet die gesamte Teilersummation in fünf geschlossenen lokalen Summenformeln.
Setze
$$A_j(e)=\sum_{a=0}^{e} B_j(a).$$
Die Implementierungen verwenden dafür die geschlossenen Formen
$$A_1(e)=\frac{(e+1)(e+2)}{2},$$
$$A_2(e)=\frac{(e+1)(e+2)(2e+3)}{6},$$
$$A_3(e)=\sum_{a=0}^{e}\left\lfloor\frac{(a+1)^2+1}{2}\right\rfloor=\frac{1}{2}\left(A_2(e)+\left\lfloor\frac{e}{2}\right\rfloor+1\right),$$
$$A_4(e)=\sum_{a=0}^{e}(a+1)^3=A_1(e)^2,$$
$$A_5(e)=\sum_{a=0}^{e}\frac{(a+1)(2a^2+4a+3)}{3}=\frac{(e+1)(e+2)(e^2+3e+3)}{6}.$$
Der Korrekturterm in \(A_3(e)\) entsteht durch die Parität: Bei ungeraden Quadraten liefert die Ganzzahldivision in \(B_3\) effektiv den zusätzlichen \(+1\)-Beitrag.
Einsetzen ergibt
$$\boxed{S(n)=7\prod_{i=1}^{r} A_1(e_i)-14\prod_{i=1}^{r} A_2(e_i)-4\prod_{i=1}^{r} A_3(e_i)+8\prod_{i=1}^{r} A_4(e_i)+4\prod_{i=1}^{r} A_5(e_i).}$$
Genau deshalb ist die Berechnung so klein: Die gesamte Geometrie wurde zuvor in fünf multiplikative Primzahlpotenz-Faktoren und deren Teilersummen eingedampft.
Als exakter Kontrollwert für einen einzelnen Primzahlquadrat-Fall gilt zunächst \((2)\). Dann ist
$$B_1(2)=3,\quad B_2(2)=9,\quad B_3(2)=5,\quad B_4(2)=27,\quad B_5(2)=19,$$
und damit
$$F=7\cdot 3-14\cdot 9-4\cdot 5+8\cdot 27+4\cdot 19=167.$$
Für die Divisorsumme bei \((2,1)\) braucht man
$$A_1(2)=6,\quad A_2(2)=14,\quad A_3(2)=8,\quad A_4(2)=36,\quad A_5(2)=26,$$
$$A_1(1)=3,\quad A_2(1)=5,\quad A_3(1)=3,\quad A_4(1)=9,\quad A_5(1)=7.$$
Also
$$\begin{aligned} S&=7(6\cdot 3)-14(14\cdot 5)-4(8\cdot 3)+8(36\cdot 9)+4(26\cdot 7)\\ &=126-980-96+2592+728\\ &=2370. \end{aligned}$$
Das stimmt mit dem Kontrollwert der Implementierungen überein. Ein weiterer Prüfwert ist \(S(1,1,1)=5535\).
Die C++-, Python- und Java-Implementierungen speichern den Ziel-Exponentenvektor \((6,3,2,1,1,1,1,1)\) direkt. Eine Laufzeit-Faktorisierung ist nicht nötig, weil die reduzierte arithmetische Formel ohnehin nur von diesen Exponenten abhängt.
Dann werden die fünf kumulierten Produktausdrücke \(\prod A_j(e_i)\) berechnet, mit den Koeffizienten \(7,-14,-4,8,4\) kombiniert und als exakte ganze Zahl ausgegeben. Die Struktur ist bewusst einfach: eine generische Produktschleife, fünf lokale Formeln und eine abschließende Linearkombination.
Die Rechnung bleibt vollständig exakt. C++ verwendet vorzeichenlose 128-Bit-Arithmetik, Python eingebaute Ganzzahlen beliebiger Größe und Java ebenfalls Ganzzahlen mit beliebiger Präzision. Weder Gleitkomma-Arithmetik noch geometrische Suche kommen vor.
Hat der Exponentenvektor die Länge \(r\), dann benötigt jeder der fünf Produktausdrücke genau einen Durchlauf. Die Laufzeit ist also \(O(r)\), der zusätzliche Speicherbedarf \(O(1)\) neben dem festen Speicher für Exponenten und Akkumulatoren. Im Zielbeispiel ist \(r=8\), also arbeitet die Lösung effektiv in konstanter Zeit.
Uygulamalar, Pisagor dörtgenlerini sayma probleminin geometri tarafını doğrudan taramak yerine, önce onu aritmetik bir biçime indirger. Eğer
$$n=\prod_{i=1}^{r} p_i^{e_i}$$
şeklinde yazılırsa, tam olarak bu \(n\) parametresine karşılık gelen dörtgen sayısı yalnızca üs vektörü \((e_1,\dots,e_r)\) ile belirlenir; asalların kendisi önemli değildir. Sorunun istediği nihai büyüklük ise bu tam sayının bütün bölenler üzerindeki toplamıdır.
Bu yüzden çözüm, düzlemde şekil üretmek yerine asal kuvvet katkılarını çarpıp sabit katsayılarla birleştirir. Asıl hız kazancı buradan gelir.
\(F(n)\) ile tek bir sabit aritmetik parametre \(n\) için tam sayımı,
$$S(n)=\sum_{d\mid n} F(d)$$
ile de uygulamaların gerçekten hesapladığı bölen-toplamı biçimini gösterelim. \(F(n)\) sadece asal üslerine bağlı olduğu için doğrudan bu üslerle çalışmak en doğal yoldur.
\(n=\prod p_i^{e_i}\) ise, her \(d\mid n\) böleni
$$d=\prod_{i=1}^{r} p_i^{a_i},\qquad 0\le a_i\le e_i$$
şeklindedir. İndirgenmiş sayım formülü asalların değerlerini değil, sadece üsleri kullanır. Dolayısıyla aynı üs profiline sahip iki sayı için hem \(F\) hem \(S\) aynıdır.
Tek bir asal kuvvet üssü \(e\) için beş yerel çarpanı tanımlayalım:
$$B_1(e)=e+1,$$
$$B_2(e)=(e+1)^2,$$
$$B_3(e)=\left\lfloor\frac{(e+1)^2+1}{2}\right\rfloor,$$
$$B_4(e)=(e+1)^3,$$
$$B_5(e)=\frac{(e+1)(2e^2+4e+3)}{3}.$$
Bunlar, indirgenmiş formülde kullanılan asal-kuvvet seviyesindeki temel yapı taşlarıdır.
Yerel katkılar farklı asallar üzerinde çarpımsal ayrıştığı için tam sayım
$$F(n)=7\prod_{i=1}^{r} B_1(e_i)-14\prod_{i=1}^{r} B_2(e_i)-4\prod_{i=1}^{r} B_3(e_i)+8\prod_{i=1}^{r} B_4(e_i)+4\prod_{i=1}^{r} B_5(e_i)$$
şeklinde yazılır. İlk çarpan \(B_1(e)=e+1\), bölen sayısı fonksiyonunun klasik yerel katkısıdır. Diğer yüksek dereceli terimler ise geometriden aritmetiğe geçildikten sonra geride kalan simetri sınıflarını paketler.
Buradaki kritik nokta şudur: asal sayının kaç olduğu değil, yalnızca üsteki \(e_i\) değeri önemlidir.
Sorunun istediği büyüklük
$$S(n)=\sum_{d\mid n} F(d)=\sum_{0\le a_i\le e_i} F(a_1,\dots,a_r)$$
olduğu için, bütün bölenleri tek tek dolaşmak yerine çarpım-toplam ayrışmasını kullanırız:
$$S(n)=7\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_1(a)\right)-14\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_2(a)\right)-4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_3(a)\right)+8\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_4(a)\right)+4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_5(a)\right).$$
Böylece tüm bölen toplamı, her asal için beş kapalı toplama formülüne indirgenmiş olur.
Şimdi
$$A_j(e)=\sum_{a=0}^{e} B_j(a)$$
tanımını yapalım. Uygulamalarda kullanılan kapalı ifadeler şunlardır:
$$A_1(e)=\frac{(e+1)(e+2)}{2},$$
$$A_2(e)=\frac{(e+1)(e+2)(2e+3)}{6},$$
$$A_3(e)=\sum_{a=0}^{e}\left\lfloor\frac{(a+1)^2+1}{2}\right\rfloor=\frac{1}{2}\left(A_2(e)+\left\lfloor\frac{e}{2}\right\rfloor+1\right),$$
$$A_4(e)=\sum_{a=0}^{e}(a+1)^3=A_1(e)^2,$$
$$A_5(e)=\sum_{a=0}^{e}\frac{(a+1)(2a^2+4a+3)}{3}=\frac{(e+1)(e+2)(e^2+3e+3)}{6}.$$
\(A_3(e)\) içindeki düzeltme terimi, tek karelerin tamsayı bölmede fazladan \(+1\) katkı üretmesinden gelir.
Bu ifadeleri yerine koyunca
$$\boxed{S(n)=7\prod_{i=1}^{r} A_1(e_i)-14\prod_{i=1}^{r} A_2(e_i)-4\prod_{i=1}^{r} A_3(e_i)+8\prod_{i=1}^{r} A_4(e_i)+4\prod_{i=1}^{r} A_5(e_i)}$$
elde edilir. Hesabın bu kadar küçük görünmesinin nedeni budur: bütün geometri önceden beş çarpımsal asal-kuvvet terimine ve bunların bölen-toplamı sürümlerine sıkıştırılmıştır.
Önce tek bir asal karesi için \((2)\) kontrolünü yapalım. Bu durumda
$$B_1(2)=3,\quad B_2(2)=9,\quad B_3(2)=5,\quad B_4(2)=27,\quad B_5(2)=19,$$
dolayısıyla
$$F=7\cdot 3-14\cdot 9-4\cdot 5+8\cdot 27+4\cdot 19=167.$$
Şimdi bölen-toplamı için \((2,1)\) vektörünü alalım. Kümülatif değerler
$$A_1(2)=6,\quad A_2(2)=14,\quad A_3(2)=8,\quad A_4(2)=36,\quad A_5(2)=26,$$
$$A_1(1)=3,\quad A_2(1)=5,\quad A_3(1)=3,\quad A_4(1)=9,\quad A_5(1)=7$$
olur. Böylece
$$\begin{aligned} S&=7(6\cdot 3)-14(14\cdot 5)-4(8\cdot 3)+8(36\cdot 9)+4(26\cdot 7)\\ &=126-980-96+2592+728\\ &=2370. \end{aligned}$$
Bu değer, uygulamalardaki kontrol sonucu ile aynıdır. Bir başka kontrol de \(S(1,1,1)=5535\) eşitliğidir.
C++, Python ve Java implementasyonları hedef üs vektörü \((6,3,2,1,1,1,1,1)\)'yi doğrudan sabit olarak tutar. Çalışma anında yeniden asal çarpanlara ayırma yapılmaz; çünkü indirgenmiş formül zaten yalnızca bu üsleri kullanır.
Her implementasyon, beş adet kümülatif çarpım \(\prod A_j(e_i)\) hesaplar, bunları \(7,-14,-4,8,4\) katsayılarıyla birleştirir ve kesin tamsayı sonucu yazar. Yapı bilinçli olarak sadedir: genel bir çarpım döngüsü, beş yerel formül ve tek bir doğrusal birleşim.
Bütün aritmetik tam sayılarla yapılır. C++ tarafında unsigned 128-bit tür kullanılır; Python ve Java ise keyfi hassasiyetli tamsayılar kullanır. Kayan nokta hesabı veya geometrik arama yoktur.
Üs vektörünün uzunluğu \(r\) ise, beş çarpımın her biri bu vektör üzerinde bir kez dolaşır. Toplam zaman karmaşıklığı \(O(r)\), ek bellek ihtiyacı ise üsleri ve birkaç birikim değişkenini saymazsak \(O(1)\)'dir. Hedef örnekte \(r=8\) olduğundan çalışma maliyeti pratikte sabittir.
Las implementaciones parten de una forma aritmética ya reducida del problema de contar cuadriláteros pitagóricos. Para un entero
$$n=\prod_{i=1}^{r} p_i^{e_i},$$
el número de cuadriláteros admisibles asociado exactamente a \(n\) depende solo del vector de exponentes \((e_1,\dots,e_r)\), no de los valores concretos de los primos. La cantidad pedida por el problema es luego la versión sumada sobre todos los divisores de ese conteo exacto.
Por eso la solución no genera configuraciones geométricas de manera explícita. Tras la reducción, todo queda comprimido en una fórmula multiplicativa sobre potencias primas.
Sea \(F(n)\) el conteo exacto para un parámetro aritmético fijo \(n\), y sea
$$S(n)=\sum_{d\mid n} F(d)$$
la suma sobre divisores que realmente calculan las implementaciones. Como \(F(n)\) depende únicamente de los exponentes primos de \(n\), conviene trabajar directamente con ellos.
Si \(n=\prod p_i^{e_i}\), entonces cualquier divisor \(d\mid n\) puede escribirse como
$$d=\prod_{i=1}^{r} p_i^{a_i},\qquad 0\le a_i\le e_i.$$
La fórmula reducida ignora los primos \(p_i\) y usa solo sus exponentes. Por tanto, dos enteros con el mismo perfil de exponentes producen el mismo valor de \(F\) y el mismo valor de \(S\).
Para un exponente local \(e\), definimos cinco factores:
$$B_1(e)=e+1,$$
$$B_2(e)=(e+1)^2,$$
$$B_3(e)=\left\lfloor\frac{(e+1)^2+1}{2}\right\rfloor,$$
$$B_4(e)=(e+1)^3,$$
$$B_5(e)=\frac{(e+1)(2e^2+4e+3)}{3}.$$
Esos son exactamente los bloques locales de potencia prima que utiliza la fórmula final.
Como las contribuciones locales se factorizan primo a primo, el conteo exacto es multiplicativo y toma la forma
$$F(n)=7\prod_{i=1}^{r} B_1(e_i)-14\prod_{i=1}^{r} B_2(e_i)-4\prod_{i=1}^{r} B_3(e_i)+8\prod_{i=1}^{r} B_4(e_i)+4\prod_{i=1}^{r} B_5(e_i).$$
El primer factor \(B_1(e)=e+1\) coincide con la contribución local clásica de la función divisor. Los demás términos de grado superior empaquetan las clases de simetría adicionales que sobreviven a la reducción desde la geometría.
La observación clave es que el tamaño de los primos no interviene en absoluto; solo importa el vector de exponentes.
La cantidad buscada es
$$S(n)=\sum_{d\mid n} F(d)=\sum_{0\le a_i\le e_i} F(a_1,\dots,a_r).$$
Como \(F\) es una combinación lineal fija de productos, la suma se separa por primos:
$$S(n)=7\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_1(a)\right)-14\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_2(a)\right)-4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_3(a)\right)+8\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_4(a)\right)+4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_5(a)\right).$$
Así, la suma sobre todos los divisores queda absorbida en cinco sumas locales cerradas.
Definimos
$$A_j(e)=\sum_{a=0}^{e} B_j(a).$$
Las fórmulas cerradas usadas por las implementaciones son
$$A_1(e)=\frac{(e+1)(e+2)}{2},$$
$$A_2(e)=\frac{(e+1)(e+2)(2e+3)}{6},$$
$$A_3(e)=\sum_{a=0}^{e}\left\lfloor\frac{(a+1)^2+1}{2}\right\rfloor=\frac{1}{2}\left(A_2(e)+\left\lfloor\frac{e}{2}\right\rfloor+1\right),$$
$$A_4(e)=\sum_{a=0}^{e}(a+1)^3=A_1(e)^2,$$
$$A_5(e)=\sum_{a=0}^{e}\frac{(a+1)(2a^2+4a+3)}{3}=\frac{(e+1)(e+2)(e^2+3e+3)}{6}.$$
La corrección de paridad en \(A_3(e)\) aparece porque los cuadrados impares aportan el \(+1\) extra cuando se reescribe la división entera de \(B_3\) mediante un piso.
Sustituyendo todo, obtenemos
$$\boxed{S(n)=7\prod_{i=1}^{r} A_1(e_i)-14\prod_{i=1}^{r} A_2(e_i)-4\prod_{i=1}^{r} A_3(e_i)+8\prod_{i=1}^{r} A_4(e_i)+4\prod_{i=1}^{r} A_5(e_i).}$$
Esa es la razón por la que el programa es tan compacto: todo el conteo geométrico ya quedó destilado en cinco términos multiplicativos por potencia prima y en sus versiones acumuladas.
Como comprobación del conteo exacto, para un único cuadrado primo \((2)\) se tiene
$$B_1(2)=3,\quad B_2(2)=9,\quad B_3(2)=5,\quad B_4(2)=27,\quad B_5(2)=19,$$
y por tanto
$$F=7\cdot 3-14\cdot 9-4\cdot 5+8\cdot 27+4\cdot 19=167.$$
Para la suma sobre divisores con vector \((2,1)\), los valores acumulados son
$$A_1(2)=6,\quad A_2(2)=14,\quad A_3(2)=8,\quad A_4(2)=36,\quad A_5(2)=26,$$
$$A_1(1)=3,\quad A_2(1)=5,\quad A_3(1)=3,\quad A_4(1)=9,\quad A_5(1)=7.$$
Entonces
$$\begin{aligned} S&=7(6\cdot 3)-14(14\cdot 5)-4(8\cdot 3)+8(36\cdot 9)+4(26\cdot 7)\\ &=126-980-96+2592+728\\ &=2370. \end{aligned}$$
Ese valor coincide con la comprobación incluida en las implementaciones. Otra verificación útil es \(S(1,1,1)=5535\).
Las implementaciones en C++, Python y Java almacenan directamente el vector objetivo \((6,3,2,1,1,1,1,1)\). No hace falta factorizar nada en tiempo de ejecución, porque la fórmula reducida ya depende solo de esos exponentes.
Después calculan los cinco productos acumulados \(\prod A_j(e_i)\), los combinan con los coeficientes \(7,-14,-4,8,4\) y emiten el entero exacto resultante. La estructura es deliberadamente simple: un recorrido genérico de producto, cinco fórmulas locales y una combinación lineal final.
Toda la aritmética es exacta. C++ usa enteros sin signo de 128 bits; Python y Java emplean enteros de precisión arbitraria. No hay búsqueda geométrica ni aritmética en coma flotante.
Si el vector de exponentes tiene longitud \(r\), cada uno de los cinco productos requiere un único recorrido por ese vector. Por tanto, el tiempo total es \(O(r)\) y la memoria adicional es \(O(1)\), aparte del almacenamiento fijo de los exponentes y unos pocos acumuladores. En la instancia objetivo, \(r=8\), así que el coste es prácticamente constante.
这些实现并不是从几何上直接枚举所有勾股四边形,而是从一个已经化简好的算术模型出发。设
$$n=\prod_{i=1}^{r} p_i^{e_i},$$
那么与这个精确参数 \(n\) 对应的可行四边形数量,只取决于指数向量 \((e_1,\dots,e_r)\),而不取决于具体是哪几个素数。题目真正要求的量还不是这个“精确计数”本身,而是它在 \(n\) 的所有约数上的求和版本。
因此,程序完全不需要在平面中搜索图形、边长或点集。几何信息已经被压缩成若干个关于素因子指数的乘法公式,最终任务只剩下代入、累乘和相加。
记 \(F(n)\) 为固定算术参数 \(n\) 的精确计数函数,再记
$$S(n)=\sum_{d\mid n} F(d)$$
为实现真正计算的约数求和版本。由于 \(F(n)\) 只依赖于 \(n\) 的素因子指数,所以直接对指数进行运算最自然。
若 \(n=\prod p_i^{e_i}\),则任意约数 \(d\mid n\) 都可写成
$$d=\prod_{i=1}^{r} p_i^{a_i},\qquad 0\le a_i\le e_i.$$
化简后的计数公式根本不关心 \(p_i\) 是哪些素数,只关心对应的指数。换句话说,只要两个整数拥有相同的指数轮廓,它们的 \(F\) 与 \(S\) 就完全相同。
对单个局部指数 \(e\),实现中使用五个素数幂层面的局部因子:
$$B_1(e)=e+1,$$
$$B_2(e)=(e+1)^2,$$
$$B_3(e)=\left\lfloor\frac{(e+1)^2+1}{2}\right\rfloor,$$
$$B_4(e)=(e+1)^3,$$
$$B_5(e)=\frac{(e+1)(2e^2+4e+3)}{3}.$$
这五项就是后续全部计算的局部积木。
由于局部贡献在不同素数之间彼此独立,精确计数函数可以写成乘法性的闭式:
$$F(n)=7\prod_{i=1}^{r} B_1(e_i)-14\prod_{i=1}^{r} B_2(e_i)-4\prod_{i=1}^{r} B_3(e_i)+8\prod_{i=1}^{r} B_4(e_i)+4\prod_{i=1}^{r} B_5(e_i).$$
其中 \(B_1(e)=e+1\) 正是约数个数函数的标准局部因子。后面几个更高次的局部项,则对应于从几何计数化到算术计数之后保留下来的其他对称类型。
这一点非常关键:公式里根本没有出现具体素数大小,只有指数 \(e_i\) 在起作用。
题目真正需要的是
$$S(n)=\sum_{d\mid n} F(d)=\sum_{0\le a_i\le e_i} F(a_1,\dots,a_r).$$
由于 \(F\) 本身就是若干乘积的固定线性组合,这个约数和可以按素数完全分离:
$$S(n)=7\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_1(a)\right)-14\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_2(a)\right)-4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_3(a)\right)+8\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_4(a)\right)+4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_5(a)\right).$$
这样就避免了逐个枚举约数;所有工作都变成五种局部前缀和的闭式计算。
定义
$$A_j(e)=\sum_{a=0}^{e} B_j(a).$$
实现中使用的闭式分别是
$$A_1(e)=\frac{(e+1)(e+2)}{2},$$
$$A_2(e)=\frac{(e+1)(e+2)(2e+3)}{6},$$
$$A_3(e)=\sum_{a=0}^{e}\left\lfloor\frac{(a+1)^2+1}{2}\right\rfloor=\frac{1}{2}\left(A_2(e)+\left\lfloor\frac{e}{2}\right\rfloor+1\right),$$
$$A_4(e)=\sum_{a=0}^{e}(a+1)^3=A_1(e)^2,$$
$$A_5(e)=\sum_{a=0}^{e}\frac{(a+1)(2a^2+4a+3)}{3}=\frac{(e+1)(e+2)(e^2+3e+3)}{6}.$$
\(A_3(e)\) 中之所以会多出一个与奇偶性有关的修正项,是因为 \(B_3(e)\) 来自整数除法;当平方项为奇数时,会额外贡献一个 \(+1\) 的校正量。
把上面的前缀和代回去,就得到
$$\boxed{S(n)=7\prod_{i=1}^{r} A_1(e_i)-14\prod_{i=1}^{r} A_2(e_i)-4\prod_{i=1}^{r} A_3(e_i)+8\prod_{i=1}^{r} A_4(e_i)+4\prod_{i=1}^{r} A_5(e_i).}$$
这就是为什么程序如此简短:所有几何复杂度都已经在前面的推导中被吸收到五个乘法性局部因子及其累积版本里了。
先看一个精确计数检查。若只有一个素数平方,即指数向量为 \((2)\),则
$$B_1(2)=3,\quad B_2(2)=9,\quad B_3(2)=5,\quad B_4(2)=27,\quad B_5(2)=19,$$
所以
$$F=7\cdot 3-14\cdot 9-4\cdot 5+8\cdot 27+4\cdot 19=167.$$
再看约数求和版本 \((2,1)\)。此时
$$A_1(2)=6,\quad A_2(2)=14,\quad A_3(2)=8,\quad A_4(2)=36,\quad A_5(2)=26,$$
$$A_1(1)=3,\quad A_2(1)=5,\quad A_3(1)=3,\quad A_4(1)=9,\quad A_5(1)=7.$$
于是
$$\begin{aligned} S&=7(6\cdot 3)-14(14\cdot 5)-4(8\cdot 3)+8(36\cdot 9)+4(26\cdot 7)\\ &=126-980-96+2592+728\\ &=2370. \end{aligned}$$
这与实现中的校验值完全一致。另一个校验点是 \(S(1,1,1)=5535\)。
C++、Python 和 Java 三个实现都直接保存目标指数向量 \((6,3,2,1,1,1,1,1)\)。因为公式只依赖指数,所以运行时不需要做任何因式分解。
随后,程序分别计算五个累积乘积 \(\prod A_j(e_i)\),再按系数 \(7,-14,-4,8,4\) 做一次线性组合,输出最终精确整数。整个结构非常紧凑:一个通用的乘积过程、五个局部闭式、最后一次组合。
所有运算都保持精确整数语义。C++ 使用无符号 128 位整数;Python 和 Java 使用任意精度整数。实现中既没有浮点误差问题,也没有几何层面的搜索过程。
若指数向量长度为 \(r\),五个乘积项各自只需遍历一次该向量,因此总时间复杂度为 \(O(r)\),额外空间复杂度为 \(O(1)\);这里只需保存固定长度的指数列表和少量累乘器。目标实例里 \(r=8\),所以运行成本实际上接近常数。
Реализации начинают не с прямого перебора геометрических фигур, а с уже сведенной арифметической формы задачи о пифагоровых четырехугольниках. Если
$$n=\prod_{i=1}^{r} p_i^{e_i},$$
то число допустимых четырехугольников для точного параметра \(n\) зависит только от вектора показателей \((e_1,\dots,e_r)\), а не от самих простых чисел. Далее требуется не только этот точный счет, но и его сумма по всем делителям \(n\).
Именно поэтому программа не строит фигуры на плоскости. После редукции все сводится к мультипликативной формуле по простым степеням.
Обозначим через \(F(n)\) точную счетную функцию для фиксированного арифметического параметра \(n\), а через
$$S(n)=\sum_{d\mid n} F(d)$$
обозначим сумму по делителям, которую на самом деле вычисляют реализации. Поскольку \(F(n)\) зависит только от показателей в разложении \(n\), удобнее всего работать непосредственно с ними.
Если \(n=\prod p_i^{e_i}\), то любой делитель \(d\mid n\) записывается как
$$d=\prod_{i=1}^{r} p_i^{a_i},\qquad 0\le a_i\le e_i.$$
Сведенная формула полностью игнорирует значения \(p_i\) и использует только показатели. Поэтому любые два числа с одинаковым профилем показателей имеют одинаковые значения \(F\) и \(S\).
Для одного локального показателя \(e\) введем пять множителей:
$$B_1(e)=e+1,$$
$$B_2(e)=(e+1)^2,$$
$$B_3(e)=\left\lfloor\frac{(e+1)^2+1}{2}\right\rfloor,$$
$$B_4(e)=(e+1)^3,$$
$$B_5(e)=\frac{(e+1)(2e^2+4e+3)}{3}.$$
Именно эти локальные множители простых степеней используются далее во всех формулах.
Поскольку локальные вклады перемножаются по простым числам, точная функция имеет мультипликативный вид
$$F(n)=7\prod_{i=1}^{r} B_1(e_i)-14\prod_{i=1}^{r} B_2(e_i)-4\prod_{i=1}^{r} B_3(e_i)+8\prod_{i=1}^{r} B_4(e_i)+4\prod_{i=1}^{r} B_5(e_i).$$
Первый множитель \(B_1(e)=e+1\) совпадает со стандартным локальным вкладом функции числа делителей. Остальные члены большей степени кодируют дополнительные классы симметрии, которые остаются после перехода от геометрии к арифметике.
Главный вывод: конкретные размеры простых не важны, важен только вектор показателей.
Искомая величина равна
$$S(n)=\sum_{d\mid n} F(d)=\sum_{0\le a_i\le e_i} F(a_1,\dots,a_r).$$
Так как \(F\) представляет собой фиксированную линейную комбинацию произведений, эта сумма полностью разделяется по простым:
$$S(n)=7\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_1(a)\right)-14\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_2(a)\right)-4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_3(a)\right)+8\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_4(a)\right)+4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_5(a)\right).$$
Иначе говоря, весь перебор делителей исчезает и заменяется пятью закрытыми локальными суммами.
Положим
$$A_j(e)=\sum_{a=0}^{e} B_j(a).$$
В реализациях используются формулы
$$A_1(e)=\frac{(e+1)(e+2)}{2},$$
$$A_2(e)=\frac{(e+1)(e+2)(2e+3)}{6},$$
$$A_3(e)=\sum_{a=0}^{e}\left\lfloor\frac{(a+1)^2+1}{2}\right\rfloor=\frac{1}{2}\left(A_2(e)+\left\lfloor\frac{e}{2}\right\rfloor+1\right),$$
$$A_4(e)=\sum_{a=0}^{e}(a+1)^3=A_1(e)^2,$$
$$A_5(e)=\sum_{a=0}^{e}\frac{(a+1)(2a^2+4a+3)}{3}=\frac{(e+1)(e+2)(e^2+3e+3)}{6}.$$
Поправка в \(A_3(e)\) появляется из-за четности: при нечетных квадратах целочисленное деление в \(B_3\) эквивалентно добавочному \(+1\), что и отражено отдельным членом.
После подстановки получаем
$$\boxed{S(n)=7\prod_{i=1}^{r} A_1(e_i)-14\prod_{i=1}^{r} A_2(e_i)-4\prod_{i=1}^{r} A_3(e_i)+8\prod_{i=1}^{r} A_4(e_i)+4\prod_{i=1}^{r} A_5(e_i).}$$
Именно поэтому вычисление получается таким компактным: вся геометрическая сложность уже свернута в пять мультипликативных локальных факторов и их накопленные версии.
Сначала проверим точный счет для одного простого квадрата, то есть для профиля \((2)\). Тогда
$$B_1(2)=3,\quad B_2(2)=9,\quad B_3(2)=5,\quad B_4(2)=27,\quad B_5(2)=19,$$
откуда
$$F=7\cdot 3-14\cdot 9-4\cdot 5+8\cdot 27+4\cdot 19=167.$$
Теперь рассмотрим сумму по делителям для \((2,1)\). Имеем
$$A_1(2)=6,\quad A_2(2)=14,\quad A_3(2)=8,\quad A_4(2)=36,\quad A_5(2)=26,$$
$$A_1(1)=3,\quad A_2(1)=5,\quad A_3(1)=3,\quad A_4(1)=9,\quad A_5(1)=7.$$
Следовательно,
$$\begin{aligned} S&=7(6\cdot 3)-14(14\cdot 5)-4(8\cdot 3)+8(36\cdot 9)+4(26\cdot 7)\\ &=126-980-96+2592+728\\ &=2370. \end{aligned}$$
Это совпадает с контрольным значением в реализациях. Еще один полезный контроль: \(S(1,1,1)=5535\).
Реализации на C++, Python и Java напрямую хранят целевой вектор показателей \((6,3,2,1,1,1,1,1)\). Дополнительная факторизация во время выполнения не нужна, потому что сведенная формула уже зависит только от этих показателей.
Далее вычисляются пять произведений \(\prod A_j(e_i)\), после чего они комбинируются с коэффициентами \(7,-14,-4,8,4\), и печатается точное целое число. Структура намеренно минимальна: один общий проход для произведения, пять локальных формул и одна финальная линейная комбинация.
Вся арифметика точная. В C++ используется беззнаковый 128-битный тип, а Python и Java опираются на целые числа произвольной точности. Никаких вычислений с плавающей точкой и никакого геометрического перебора в коде нет.
Если длина вектора показателей равна \(r\), то каждый из пяти произведений требует одного прохода по этому вектору. Следовательно, общее время работы равно \(O(r)\), а дополнительная память равна \(O(1)\), не считая фиксированного хранения показателей и нескольких аккумуляторов. В целевой задаче \(r=8\), поэтому фактически это константное время.
لا تبدأ هذه الحلول من تعداد هندسي مباشر للأشكال، بل من صيغة حسابية مختزلة لمسألة عدّ الرباعيات الفيثاغورية. إذا كتبنا
$$n=\prod_{i=1}^{r} p_i^{e_i},$$
فإن عدد الأشكال المقبولة المرتبطة تمامًا بالمعامل \(n\) يعتمد فقط على متجه الأسس \((e_1,\dots,e_r)\)، ولا يعتمد على القيم الفعلية للأعداد الأولية. والكمية المطلوبة في المسألة ليست هذا العد الدقيق وحده، بل نسخته المجمعة على جميع قواسم \(n\).
لهذا السبب لا تحتاج الخوارزمية إلى توليد أشكال في المستوى. بعد الاختزال تصبح المسألة كلها تقييمًا لصيغة ضربية مبنية على قوى أولية.
لنرمز بـ \(F(n)\) إلى دالة العدّ الدقيق لمعلمة حسابية ثابتة \(n\)، ولنرمز بـ
$$S(n)=\sum_{d\mid n} F(d)$$
إلى مجموع القواسم الذي تحسبه التطبيقات فعليًا. وبما أن \(F(n)\) لا تعتمد إلا على أسس التحليل الأولي لـ \(n\)، فمن الأنسب العمل مباشرة على هذه الأسس.
إذا كان \(n=\prod p_i^{e_i}\)، فإن كل قاسم \(d\mid n\) يكتب على الصورة
$$d=\prod_{i=1}^{r} p_i^{a_i},\qquad 0\le a_i\le e_i.$$
الصيغة المختزلة لا تستعمل الأعداد الأولية \(p_i\) نفسها، بل تستعمل الأسس فقط. لذلك فإن أي عددين لهما البنية نفسها من حيث الأسس يعطيان القيمتين نفسيهما لـ \(F\) و\(S\).
ولأس واحد محلي \(e\)، تعرف الحلول خمسة عوامل محلية:
$$B_1(e)=e+1,$$
$$B_2(e)=(e+1)^2,$$
$$B_3(e)=\left\lfloor\frac{(e+1)^2+1}{2}\right\rfloor,$$
$$B_4(e)=(e+1)^3,$$
$$B_5(e)=\frac{(e+1)(2e^2+4e+3)}{3}.$$
وهذه هي اللبنات المحلية الدقيقة التي تبنى منها الصيغة النهائية كلها.
لأن المساهمات المحلية تتفكك على الأعداد الأولية المختلفة، فإن دالة العدّ الدقيق تكون ضربية وتأخذ الشكل
$$F(n)=7\prod_{i=1}^{r} B_1(e_i)-14\prod_{i=1}^{r} B_2(e_i)-4\prod_{i=1}^{r} B_3(e_i)+8\prod_{i=1}^{r} B_4(e_i)+4\prod_{i=1}^{r} B_5(e_i).$$
العامل الأول \(B_1(e)=e+1\) هو المساهمة المحلية المعتادة لدالة عدد القواسم. أما العوامل الأعلى درجة فتلخّص أصناف التناظر الأخرى التي تبقى بعد تحويل العدّ من الوصف الهندسي إلى الوصف الحسابي.
النتيجة الأساسية هنا أن قيم الأعداد الأولية نفسها لا تدخل في الحساب بعد هذا الاختزال؛ المتحكم الحقيقي هو متجه الأسس فقط.
الكمية المطلوبة هي
$$S(n)=\sum_{d\mid n} F(d)=\sum_{0\le a_i\le e_i} F(a_1,\dots,a_r).$$
وبما أن \(F\) تركيب خطي ثابت من جداءات، فإن مجموع القواسم ينفصل بالكامل بحسب الأعداد الأولية:
$$S(n)=7\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_1(a)\right)-14\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_2(a)\right)-4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_3(a)\right)+8\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_4(a)\right)+4\prod_{i=1}^{r}\left(\sum_{a=0}^{e_i} B_5(a)\right).$$
وهكذا يختفي التعداد الصريح للقواسم، ويحل مكانه خمس صيغ مغلقة لمجاميع محلية.
نعرّف
$$A_j(e)=\sum_{a=0}^{e} B_j(a).$$
وتستخدم التطبيقات الصيغ التالية:
$$A_1(e)=\frac{(e+1)(e+2)}{2},$$
$$A_2(e)=\frac{(e+1)(e+2)(2e+3)}{6},$$
$$A_3(e)=\sum_{a=0}^{e}\left\lfloor\frac{(a+1)^2+1}{2}\right\rfloor=\frac{1}{2}\left(A_2(e)+\left\lfloor\frac{e}{2}\right\rfloor+1\right),$$
$$A_4(e)=\sum_{a=0}^{e}(a+1)^3=A_1(e)^2,$$
$$A_5(e)=\sum_{a=0}^{e}\frac{(a+1)(2a^2+4a+3)}{3}=\frac{(e+1)(e+2)(e^2+3e+3)}{6}.$$
أما الحد التصحيحي في \(A_3(e)\) فيأتي من أثر الفردية والزوجية: فالمربعات الفردية تضيف مقدار \(+1\) إضافيًا عندما نعيد كتابة القسمة الصحيحة الموجودة في \(B_3\) باستعمال دالة الجزء الصحيح.
بالتعويض نحصل على
$$\boxed{S(n)=7\prod_{i=1}^{r} A_1(e_i)-14\prod_{i=1}^{r} A_2(e_i)-4\prod_{i=1}^{r} A_3(e_i)+8\prod_{i=1}^{r} A_4(e_i)+4\prod_{i=1}^{r} A_5(e_i).}$$
ولهذا يبدو التنفيذ صغيرًا جدًا مقارنة بالصياغة الهندسية الأصلية: فكل التعقيد الهندسي سبق ضغطه في خمسة عوامل ضرب محلية ونسخها التراكمية.
لنأخذ أولًا فحصًا بسيطًا للعدّ الدقيق عند متجه \((2)\) الموافق لمربع أولي واحد. عندها
$$B_1(2)=3,\quad B_2(2)=9,\quad B_3(2)=5,\quad B_4(2)=27,\quad B_5(2)=19,$$
ومن ثم
$$F=7\cdot 3-14\cdot 9-4\cdot 5+8\cdot 27+4\cdot 19=167.$$
الآن نرفع ذلك إلى مجموع القواسم عند المتجه \((2,1)\). عندها تكون القيم التراكمية
$$A_1(2)=6,\quad A_2(2)=14,\quad A_3(2)=8,\quad A_4(2)=36,\quad A_5(2)=26,$$
$$A_1(1)=3,\quad A_2(1)=5,\quad A_3(1)=3,\quad A_4(1)=9,\quad A_5(1)=7.$$
إذًا
$$\begin{aligned} S&=7(6\cdot 3)-14(14\cdot 5)-4(8\cdot 3)+8(36\cdot 9)+4(26\cdot 7)\\ &=126-980-96+2592+728\\ &=2370. \end{aligned}$$
وهذه القيمة هي نفسها قيمة التحقق الموجودة داخل التطبيقات. وهناك نقطة تحقق أخرى هي \(S(1,1,1)=5535\).
تخزن تطبيقات C++ وPython وJava متجه الأسس الهدف \((6,3,2,1,1,1,1,1)\) مباشرة. لذلك لا يوجد أي تحليل أولي أثناء التشغيل؛ فالصيغة المختزلة تعتمد سلفًا على هذه الأسس فقط.
بعد ذلك تحسب كل نسخة الجداءات الخمسة \(\prod A_j(e_i)\)، ثم تجمعها بالمعاملات \(7,-14,-4,8,4\)، ثم تطبع العدد الصحيح النهائي. البنية مقصودة البساطة: تمريرة عامة للجداء، وخمس صيغ محلية، ثم تركيب خطي أخير.
كل الحسابات دقيقة تمامًا. نسخة C++ تستعمل حسابًا صحيحًا غير موقّع بعرض 128 بت، بينما تعتمد Python وJava على أعداد صحيحة ذات دقة اعتباطية. ولا يوجد في التنفيذ أي استعمال للحساب العشري أو أي بحث هندسي مباشر.
إذا كان طول متجه الأسس هو \(r\)، فإن كل واحد من الجداءات الخمسة يحتاج إلى مرور واحد على هذا المتجه. لذلك يكون الزمن الكلي \(O(r)\)، وتكون الذاكرة الإضافية \(O(1)\) بخلاف التخزين الثابت لمتجه الأسس وبعض المتغيرات المجمِّعة. وفي الحالة الهدف لدينا \(r=8\)، لذا فالتكلفة العملية ثابتة تقريبًا.