Problem Summary

For distinct primes \(p \lt q \lt r\), define the three semiprimes

$$a=pq,\qquad b=pr,\qquad c=qr.$$

For each prime triple, we want the largest integer that cannot be written as a nonnegative linear combination of \(a,b,c\). Then we sum that Frobenius value over all triples below the prime limit. As usual, the final Project Euler number is omitted; the purpose of this page is to explain the mathematics behind the C++ solution.

Mathematical Approach

1) The semigroup we need to understand

Let

$$S=\langle pq,pr,qr\rangle=\{x\cdot pq+y\cdot pr+z\cdot qr:\ x,y,z\ge0\}.$$

The problem asks for the Frobenius number of this semigroup, namely the largest integer not belonging to \(S\).

For three arbitrary generators, no simple closed formula usually exists. The reason this problem is solvable is that the generators share the prime factors \(p,q,r\) in a very rigid way.

2) Rewrite every representable number by residue modulo \(p\)

Because

$$pq=p\cdot q,\qquad pr=p\cdot r,$$

every representable number has the form

$$N=z\cdot qr+p\cdot m,$$

where

$$m\in \langle q,r\rangle=\{u\cdot q+v\cdot r:\ u,v\ge0\}.$$

So the whole three-generator problem reduces to this question:

For each residue class modulo \(p\), how large can \(N\) be before the quotient part \(m\) is forced into the two-generator semigroup \(\langle q,r\rangle\)?

Since \(p\) is distinct from \(q\) and \(r\),

$$\gcd(qr,p)=1.$$

Therefore multiplication by \(qr\) permutes the residue classes modulo \(p\). So for every integer \(N\), there is a unique choice

$$x\in\{0,1,\dots,p-1\}$$

such that

$$N\equiv x\cdot qr \pmod p.$$

For that unique \(x\), we can write

$$N=x\cdot qr+p\cdot m$$

with integer \(m\).

3) The two-generator core: Sylvester for \(q\) and \(r\)

Now \(q\) and \(r\) are coprime primes, so the classical two-generator Frobenius theorem applies:

$$g(q,r)=qr-q-r.$$

This means:

$$m\notin\langle q,r\rangle\quad\Longrightarrow\quad m\le qr-q-r,$$

and every integer

$$m\gt qr-q-r$$

does belong to \(\langle q,r\rangle\).

4) Largest nonrepresentable number in one fixed residue class

Fix a residue representative \(x\in\{0,\dots,p-1\}\). Consider numbers of the form

$$N=x\cdot qr+p\cdot m.$$

If \(m\gt qr-q-r\), then \(m\in\langle q,r\rangle\), hence \(N\in S\). Therefore the only candidates for nonrepresentability in this residue class occur when

$$m\le qr-q-r.$$

This suggests that the largest missing number in the residue class should be

$$G_x=x\cdot qr+p(qr-q-r).$$

Why is \(G_x\) not representable? Suppose, for contradiction, that \(G_x\in S\). Then

$$G_x=z\cdot qr+p(q u+r v)$$

for some \(z,u,v\ge0\). Because \(qr\) is invertible modulo \(p\), the residue condition forces

$$z\equiv x\pmod p,$$

so we can write

$$z=x+p t,\qquad t\ge0.$$

Substitute this into the equation for \(G_x\):

$$x\cdot qr+p(qr-q-r)=(x+p t)\cdot qr+p(q u+r v).$$

After subtracting \(x\cdot qr\) and dividing by \(p\), we get

$$qr-q-r=t\cdot qr+q u+r v.$$

If \(t\ge1\), then the right-hand side is at least \(qr\), impossible because the left-hand side is \(qr-q-r\lt qr\). So \(t=0\), and then

$$qr-q-r=q u+r v,$$

contradicting the fact that \(qr-q-r\) is the Frobenius number for \(q\) and \(r\). Hence \(G_x\notin S\).

Why is every larger number in the same residue class representable? Let

$$N\gt G_x$$

and suppose \(N\equiv x\cdot qr\pmod p\). Then

$$N=x\cdot qr+p m$$

for some integer \(m\), and because \(N\gt G_x\), we have

$$m\gt qr-q-r.$$

So \(m\in\langle q,r\rangle\), which implies \(N\in S\).

Therefore \(G_x\) is exactly the largest nonrepresentable integer in its residue class.

5) Maximize over all residue classes

Now the global Frobenius number is simply the maximum of the \(G_x\):

$$g(pq,pr,qr)=\max_{0\le x\le p-1}\Bigl(x\cdot qr+p(qr-q-r)\Bigr).$$

This is largest at \(x=p-1\), so

$$g(pq,pr,qr)=(p-1)qr+p(qr-q-r).$$

Expand it:

$$g(pq,pr,qr)=2pqr-pq-pr-qr.$$

This is the exact closed formula used by the code.

6) Worked example: \((p,q,r)=(2,3,5)\)

The generators are

$$6,\ 10,\ 15.$$

For the two-generator core,

$$g(3,5)=15-3-5=7.$$

Because \(p=2\), there are only two residue classes modulo \(2\):

For \(x=0\), the largest missing number is

$$G_0=0\cdot15+2\cdot7=14.$$

For \(x=1\), the largest missing number is

$$G_1=1\cdot15+2\cdot7=29.$$

So the global answer is \(29\). This matches the explicit nonrepresentability check:

$$29\notin\langle6,10,15\rangle,$$

while the next few numbers are already representable:

$$30=15+15,\quad 31=15+10+6,\quad 32=10+10+6+6,\quad 33=15+6+6+6.$$

7) Second checkpoint example: \((2,7,11)\)

Here

$$g(7,11)=77-7-11=59.$$

Again \(p=2\), so

$$G_0=2\cdot59=118,\qquad G_1=77+2\cdot59=195.$$

Hence

$$g(14,22,77)=195,$$

which is exactly the second checkpoint hard-coded in the program.

8) Summation over all prime triples

Once the Frobenius number has a closed form, the original problem becomes

$$\sum_{p \lt q \lt r \lt L}\bigl(2pqr-pq-pr-qr\bigr).$$

So the hard mathematics is entirely in the formula above; after that, the remaining task is just prime generation and triple enumeration.

How the Code Works

1) Prime sieve. primes_below(limit) generates all primes below the chosen limit.

2) Closed formula helper. frobenius_semiprime_triple(p,q,r) returns

$$2pqr-pq-pr-qr.$$

3) Brute-force validation on small cases. brute_frobenius_three(a,b,c) builds a reachability table and checks that the formula agrees with brute force for all prime triples below \(20\).

4) Final accumulation. solve_sum() iterates over all ordered triples \(p \lt q \lt r\) and accumulates the result in a 128-bit integer.

5) Small total checkpoint. For primes below \(10\), the four triples are \((2,3,5)\), \((2,3,7)\), \((2,5,7)\), \((3,5,7)\), giving

$$29+43+81+139=292.$$

Complexity Analysis

If \(m=\pi(L)\) is the number of primes below \(L\), the sieve costs about \(O(L\log\log L)\), while the triple enumeration costs \(O(m^3)\). That cubic triple loop dominates the runtime. Memory usage is \(O(m)\) for the prime list, plus a small extra table used only by the brute-force checkpoints.

Further Reading

  1. Problem page: https://projecteuler.net/problem=278
  2. Frobenius coin problem: https://en.wikipedia.org/wiki/Coin_problem
  3. Numerical semigroups: https://en.wikipedia.org/wiki/Numerical_semigroup

Problemzusammenfassung

Für verschiedene Primzahlen \(p \lt q \lt r\) betrachten wir die drei Semiprime

$$a=pq,\qquad b=pr,\qquad c=qr.$$

Für jedes Primzahl-Tripel ist die größte Zahl zu bestimmen, die sich nicht als nichtnegative Linearkombination von \(a,b,c\) schreiben lässt. Anschließend werden diese Frobenius-Werte über alle Tripel unterhalb der Schranke aufsummiert. Die finale Euler-Zahl wird hier nicht angegeben; wichtig ist die Herleitung der geschlossenen Formel.

Mathematischer Ansatz

1) Die zu untersuchende Halbgruppe

Setze

$$S=\langle pq,pr,qr\rangle=\{x\cdot pq+y\cdot pr+z\cdot qr:\ x,y,z\ge0\}.$$

Gesucht ist also die Frobenius-Zahl dieser Halbgruppe, also die größte ganze Zahl, die nicht in \(S\) liegt.

Für drei beliebige Erzeuger gibt es normalerweise keine einfache Formel. Hier ist die Struktur wegen der drei Primfaktoren jedoch so starr, dass man die Aufgabe auf ein zweidimensionales Frobenius-Problem zurückführen kann.

2) Zerlegung nach Restklassen modulo \(p\)

Da

$$pq=p\cdot q,\qquad pr=p\cdot r,$$

hat jede darstellbare Zahl die Form

$$N=z\cdot qr+p\cdot m,$$

wobei

$$m\in \langle q,r\rangle=\{u\cdot q+v\cdot r:\ u,v\ge0\}.$$

Die Dreier-Aufgabe zerfällt also in \(p\) Restklassen modulo \(p\).

Weil \(p\) verschieden von \(q\) und \(r\) ist, gilt

$$\gcd(qr,p)=1.$$

Damit durchläuft Multiplikation mit \(qr\) alle Restklassen modulo \(p\). Für jedes \(N\) gibt es also genau ein

$$x\in\{0,1,\dots,p-1\}$$

mit

$$N\equiv x\cdot qr\pmod p,$$

und folglich eine Darstellung

$$N=x\cdot qr+p\cdot m$$

mit ganzzahligem \(m\).

3) Der zweidimensionale Kern: Sylvester für \(q\) und \(r\)

Da \(q\) und \(r\) teilerfremd sind, gilt die klassische Sylvester-Formel:

$$g(q,r)=qr-q-r.$$

Das bedeutet:

$$m\notin\langle q,r\rangle\Longrightarrow m\le qr-q-r,$$

und jede Zahl

$$m\gt qr-q-r$$

liegt bereits in \(\langle q,r\rangle\).

4) Größte fehlende Zahl in einer festen Restklasse

Fixiere \(x\in\{0,\dots,p-1\}\). Dann betrachten wir Zahlen

$$N=x\cdot qr+p\cdot m.$$

Sobald \(m\gt qr-q-r\), ist \(m\) darstellbar durch \(q\) und \(r\), also ist auch \(N\in S\). Der Kandidat für die größte fehlende Zahl in dieser Restklasse ist daher

$$G_x=x\cdot qr+p(qr-q-r).$$

Warum ist \(G_x\) nicht darstellbar? Angenommen, \(G_x\in S\). Dann gäbe es \(z,u,v\ge0\) mit

$$G_x=z\cdot qr+p(q u+r v).$$

Wegen der Restklasse modulo \(p\) muss gelten

$$z\equiv x\pmod p,$$

also

$$z=x+p t,\qquad t\ge0.$$

Einsetzen liefert

$$x\cdot qr+p(qr-q-r)=(x+p t)\cdot qr+p(q u+r v).$$

Nach Kürzen von \(x\cdot qr\) und Division durch \(p\) folgt

$$qr-q-r=t\cdot qr+q u+r v.$$

Falls \(t\ge1\), wäre die rechte Seite mindestens \(qr\), die linke Seite ist aber \(qr-q-r\lt qr\). Also muss \(t=0\) gelten, und dann stünde dort

$$qr-q-r=q u+r v,$$

im Widerspruch dazu, dass \(qr-q-r\) gerade die Frobenius-Zahl von \(q\) und \(r\) ist. Also ist \(G_x\) nicht darstellbar.

Warum ist jede größere Zahl derselben Restklasse darstellbar? Sei \(N\gt G_x\) und

$$N\equiv x\cdot qr\pmod p.$$

Dann gilt

$$N=x\cdot qr+p\cdot m$$

mit einem ganzen \(m\), und aus \(N\gt G_x\) folgt

$$m\gt qr-q-r.$$

Somit ist \(m\in\langle q,r\rangle\), also \(N\in S\).

Also ist \(G_x\) exakt die größte nicht darstellbare Zahl in dieser Restklasse.

5) Maximum über alle Restklassen

Die globale Frobenius-Zahl ist damit

$$g(pq,pr,qr)=\max_{0\le x\le p-1}\Bigl(x\cdot qr+p(qr-q-r)\Bigr).$$

Das Maximum wird bei \(x=p-1\) erreicht. Daher

$$g(pq,pr,qr)=(p-1)qr+p(qr-q-r).$$

Ausmultipliziert:

$$g(pq,pr,qr)=2pqr-pq-pr-qr.$$

6) Beispiel \((p,q,r)=(2,3,5)\)

Die Erzeuger sind

$$6,\ 10,\ 15.$$

Für den Zweierkern gilt

$$g(3,5)=15-3-5=7.$$

Da \(p=2\) ist, gibt es nur zwei Restklassen:

Für \(x=0\):

$$G_0=0\cdot15+2\cdot7=14.$$

Für \(x=1\):

$$G_1=1\cdot15+2\cdot7=29.$$

Also ist die Frobenius-Zahl \(29\). Das passt zu

$$29\notin\langle6,10,15\rangle,$$

während etwa

$$30=15+15,\quad 31=15+10+6,\quad 32=10+10+6+6$$

schon darstellbar sind.

7) Zweites Checkpoint-Beispiel: \((2,7,11)\)

Hier ist

$$g(7,11)=77-7-11=59.$$

Wegen \(p=2\) folgt

$$G_0=2\cdot59=118,\qquad G_1=77+2\cdot59=195.$$

Damit

$$g(14,22,77)=195,$$

genau wie im Code überprüft.

8) Summation über alle Primzahl-Tripel

Nach der Herleitung bleibt nur noch

$$\sum_{p \lt q \lt r \lt L}(2pqr-pq-pr-qr)$$

über alle Tripel unterhalb der Schranke zu summieren.

Code-Logik

1) Sieb. primes_below(limit) erzeugt alle Primzahlen unterhalb der Schranke.

2) Geschlossene Formel. frobenius_semiprime_triple(p,q,r) liefert

$$2pqr-pq-pr-qr.$$

3) Brute-Force-Validierung. Für kleine Primzahlen unter \(20\) vergleicht der Code die Formel mit einer Erreichbarkeitstabelle.

4) Gesamtsumme. solve_sum() durchläuft alle geordneten Tripel \(p\lt q\lt r\) und akkumuliert mit 128-Bit-Arithmetik.

5) Kleiner Gesamt-Checkpoint. Für Primzahlen unter \(10\) ergibt sich

$$29+43+81+139=292.$$

Komplexitätsanalyse

Mit \(m=\pi(L)\) kostet das Sieb ungefähr \(O(L\log\log L)\). Die Dreifachschleife über alle Primzahl-Tripel kostet \(O(m^3)\) und dominiert die Laufzeit. Der Speicherbedarf ist \(O(m)\).

Weiterführende Hinweise

  1. Problem: https://projecteuler.net/problem=278
  2. Frobenius-Problem: https://de.wikipedia.org/wiki/Frobenius-Problem
  3. Numerische Halbgruppen: https://de.wikipedia.org/wiki/Numerische_Halbgruppe

Problem Özeti

Farklı asallar \(p \lt q \lt r\) için şu üç yarı-asal sayı tanımlanır:

$$a=pq,\qquad b=pr,\qquad c=qr.$$

Her asal üçlüsü için, bu üç sayının negatif olmayan lineer birleşimi olarak yazılamayan en büyük sayı istenir. Sonra bu Frobenius değeri sınır altındaki tüm asal üçlüleri üzerinde toplanır. Her zamanki gibi nihai Project Euler cevabı burada verilmez; önemli olan kapalı formülün neden doğru olduğudur.

Matematiksel Yaklaşım

1) İncelenen yarıgrup

Şu yarıgrubu ele alalım:

$$S=\langle pq,pr,qr\rangle=\{x\cdot pq+y\cdot pr+z\cdot qr:\ x,y,z\ge0\}.$$

Aranan şey, \(S\) içinde olmayan en büyük tam sayıdır.

Genel üç üreteçli Frobenius problemlerinde basit kapalı formül yoktur. Bu soruda işe yarayan şey, üreteçlerin asal çarpan yapısının çok özel olmasıdır.

2) Her yazılabilir sayıyı mod \(p\)’ye göre ayırmak

Çünkü

$$pq=p\cdot q,\qquad pr=p\cdot r,$$

her yazılabilir sayı şu biçimdedir:

$$N=z\cdot qr+p\cdot m,$$

burada

$$m\in \langle q,r\rangle=\{u\cdot q+v\cdot r:\ u,v\ge0\}.$$

Yani üç üreteçli problem, mod \(p\) kalıntı sınıflarına bölünmüş bir iki üreteçli probleme dönüşür.

\(p\), \(q\) ve \(r\)’den farklı asal olduğundan

$$\gcd(qr,p)=1$$

olur. Bu yüzden \(qr\) ile çarpmak mod \(p\) sınıflarını permüte eder. Dolayısıyla her \(N\) için,

$$x\in\{0,1,\dots,p-1\}$$

olmak üzere tek bir \(x\) vardır ve

$$N\equiv x\cdot qr\pmod p.$$

Böylece

$$N=x\cdot qr+p\cdot m$$

şeklinde yazılabilir.

3) Asıl çekirdek: \(q\) ve \(r\) için Sylvester teoremi

\(q\) ve \(r\) aralarında asaldır; bu yüzden klasik iki üreteçli Frobenius teoremi geçerlidir:

$$g(q,r)=qr-q-r.$$

Bunun anlamı şudur:

$$m\notin\langle q,r\rangle\Longrightarrow m\le qr-q-r,$$

ve

$$m\gt qr-q-r$$

olan her tam sayı artık \(\langle q,r\rangle\) içindedir.

4) Sabit bir kalıntı sınıfındaki en büyük eksik sayı

\(x\in\{0,\dots,p-1\}\) sabit olsun. Bu sınıftaki sayılar

$$N=x\cdot qr+p\cdot m$$

şeklindedir. Eğer \(m\gt qr-q-r\) ise \(m\), \(q\) ve \(r\) ile yazılabilir; dolayısıyla \(N\in S\) olur. O hâlde bu sınıftaki en büyük eksik sayı için doğal aday

$$G_x=x\cdot qr+p(qr-q-r)$$

değeridir.

Neden \(G_x\) yazılamaz? Tersini varsayalım. O zaman \(G_x\in S\) olduğundan

$$G_x=z\cdot qr+p(q u+r v)$$

eşitliği bazı \(z,u,v\ge0\) için sağlanır. Mod \(p\)’ye bakarsak

$$z\equiv x\pmod p$$

olmalıdır; yani

$$z=x+p t,\qquad t\ge0.$$

Bunu denkleme koyarsak

$$x\cdot qr+p(qr-q-r)=(x+p t)\cdot qr+p(q u+r v).$$

\(x\cdot qr\) terimini sadeleştirip \(p\)’ye bölersek

$$qr-q-r=t\cdot qr+q u+r v$$

elde edilir. Eğer \(t\ge1\) ise sağ taraf en az \(qr\) olur; ama sol taraf \(qr-q-r\lt qr\)’dir. O hâlde \(t=0\) zorunludur. Bu kez

$$qr-q-r=q u+r v$$

çıkar ki bu da \(qr-q-r\)’nin \(q\) ve \(r\) için Frobenius sayısı olmasına ters düşer. Demek ki \(G_x\) gerçekten yazılamaz.

Neden aynı sınıftaki daha büyük her sayı yazılabilir? Eğer

$$N\gt G_x$$

ve

$$N\equiv x\cdot qr\pmod p$$

ise

$$N=x\cdot qr+p\cdot m$$

olur ve \(N\gt G_x\) olduğundan

$$m\gt qr-q-r$$

elde edilir. Bu da \(m\in\langle q,r\rangle\) demektir; dolayısıyla \(N\in S\).

Sonuç olarak \(G_x\), bu kalıntı sınıfındaki en büyük yazılamayan sayıdır.

5) Tüm kalıntı sınıfları arasında maksimumu almak

Genel Frobenius değeri

$$g(pq,pr,qr)=\max_{0\le x\le p-1}\Bigl(x\cdot qr+p(qr-q-r)\Bigr)$$

olur. Bu ifade \(x\) arttıkça büyüdüğü için maksimum \(x=p-1\)’de alınır:

$$g(pq,pr,qr)=(p-1)qr+p(qr-q-r).$$

Bunu açarsak

$$g(pq,pr,qr)=2pqr-pq-pr-qr$$

elde edilir. Kodun kullandığı kapalı form tam olarak budur.

6) Çalışan örnek: \((p,q,r)=(2,3,5)\)

Üreteçler

$$6,\ 10,\ 15$$

olur. İki üreteçli çekirdekte

$$g(3,5)=15-3-5=7.$$

\(p=2\) olduğundan yalnızca iki kalıntı sınıfı vardır:

\(x=0\) için

$$G_0=0\cdot15+2\cdot7=14,$$

\(x=1\) için

$$G_1=1\cdot15+2\cdot7=29.$$

Dolayısıyla genel cevap \(29\)’dur. Gerçekten de

$$29\notin\langle6,10,15\rangle,$$

ama bir sonraki sayılar yazılabilir:

$$30=15+15,\quad 31=15+10+6,\quad 32=10+10+6+6,\quad 33=15+6+6+6.$$

7) İkinci checkpoint örneği: \((2,7,11)\)

Burada

$$g(7,11)=77-7-11=59.$$

Yine \(p=2\) olduğu için

$$G_0=2\cdot59=118,\qquad G_1=77+2\cdot59=195.$$

Yani

$$g(14,22,77)=195,$$

ve bu, kaynak koddaki ikinci kontrol noktasıyla aynıdır.

8) Tüm asal üçlüleri üzerinde toplam

Kapalı formül bulunduktan sonra problem yalnızca

$$\sum_{p \lt q \lt r \lt L}(2pqr-pq-pr-qr)$$

toplamını almaya dönüşür.

Kodun Mantığı

1) Elek. primes_below(limit) sınır altındaki tüm asalları üretir.

2) Kapalı formül fonksiyonu. frobenius_semiprime_triple(p,q,r) doğrudan

$$2pqr-pq-pr-qr$$

döndürür.

3) Brute-force doğrulama. Küçük asallar için brute_frobenius_three(a,b,c) erişilebilirlik tablosu kurar ve formülün sonucunu kontrol eder.

4) Global toplam. solve_sum() tüm \(p \lt q \lt r\) üçlülerini gezer ve sonucu 128-bit değişkende toplar.

5) Küçük toplam checkpoint’i. \(10\)’dan küçük asallar için

$$29+43+81+139=292$$

elde edilir.

Karmaşıklık Analizi

\(m=\pi(L)\) olsun. Elek yaklaşık \(O(L\log\log L)\) zaman alır. Tüm üçlülerin gezilmesi \(O(m^3)\) maliyetlidir ve baskın kısımdır. Bellek \(O(m)\) seviyesindedir.

İleri Okuma

  1. Problem metni: https://projecteuler.net/problem=278
  2. Frobenius problemi: https://tr.wikipedia.org/wiki/Frobenius_sorunu
  3. Sayısal yarıgruplar: https://en.wikipedia.org/wiki/Numerical_semigroup

Resumen del Problema

Para primos distintos \(p \lt q \lt r\), consideramos los tres semiprimos

$$a=pq,\qquad b=pr,\qquad c=qr.$$

Para cada trío primo, buscamos el mayor entero que no puede escribirse como combinación lineal no negativa de \(a,b,c\). Luego sumamos ese valor de Frobenius sobre todos los tríos bajo el límite. Como siempre, el número final de Project Euler se omite; aquí interesa la deducción de la fórmula.

Enfoque Matemático

1) El semigrupo que hay que estudiar

Definimos

$$S=\langle pq,pr,qr\rangle=\{x\cdot pq+y\cdot pr+z\cdot qr:\ x,y,z\ge0\}.$$

El problema pide el mayor entero que no pertenece a \(S\).

2) Reescritura por clases residuales módulo \(p\)

Como

$$pq=p\cdot q,\qquad pr=p\cdot r,$$

todo número representable puede escribirse como

$$N=z\cdot qr+p\cdot m,$$

donde

$$m\in \langle q,r\rangle=\{u\cdot q+v\cdot r:\ u,v\ge0\}.$$

Así, el problema de tres generadores se reduce a estudiar cada clase residual módulo \(p\).

Puesto que \(p\) es distinto de \(q\) y \(r\),

$$\gcd(qr,p)=1.$$

Por eso, multiplicar por \(qr\) permuta las clases módulo \(p\). Existe un único

$$x\in\{0,1,\dots,p-1\}$$

tal que

$$N\equiv x\cdot qr\pmod p,$$

y entonces

$$N=x\cdot qr+p\cdot m.$$

3) El núcleo bidimensional: Sylvester para \(q\) y \(r\)

Como \(q\) y \(r\) son coprimos, vale la fórmula clásica:

$$g(q,r)=qr-q-r.$$

Esto significa que

$$m\notin\langle q,r\rangle\Longrightarrow m\le qr-q-r,$$

y todo

$$m\gt qr-q-r$$

sí pertenece a \(\langle q,r\rangle\).

4) Mayor no representable en una clase fija

Fijemos \(x\in\{0,\dots,p-1\}\). En esa clase consideramos

$$N=x\cdot qr+p\cdot m.$$

Si \(m\gt qr-q-r\), entonces \(m\in\langle q,r\rangle\), así que \(N\in S\). Por tanto, el candidato natural es

$$G_x=x\cdot qr+p(qr-q-r).$$

Por qué \(G_x\) no es representable. Supongamos lo contrario. Entonces

$$G_x=z\cdot qr+p(q u+r v)$$

para ciertos \(z,u,v\ge0\). Al mirar módulo \(p\), forzosamente

$$z\equiv x\pmod p,$$

de modo que

$$z=x+p t,\qquad t\ge0.$$

Sustituyendo:

$$x\cdot qr+p(qr-q-r)=(x+p t)\cdot qr+p(q u+r v).$$

Tras cancelar \(x\cdot qr\) y dividir por \(p\), queda

$$qr-q-r=t\cdot qr+q u+r v.$$

Si \(t\ge1\), el lado derecho es al menos \(qr\), imposible porque el izquierdo es \(qr-q-r\lt qr\). Luego \(t=0\), y entonces

$$qr-q-r=q u+r v,$$

contradicción, porque \(qr-q-r\) es precisamente el número de Frobenius para \(q\) y \(r\). Luego \(G_x\) no es representable.

Por qué todo número mayor en la misma clase sí lo es. Si \(N\gt G_x\) y \(N\equiv x\cdot qr\pmod p\), entonces

$$N=x\cdot qr+p\cdot m$$

con

$$m\gt qr-q-r.$$

Entonces \(m\in\langle q,r\rangle\), y por tanto \(N\in S\).

Así, \(G_x\) es exactamente el mayor entero no representable en esa clase residual.

5) Maximizar entre todas las clases

La respuesta global es

$$g(pq,pr,qr)=\max_{0\le x\le p-1}\Bigl(x\cdot qr+p(qr-q-r)\Bigr).$$

El máximo se alcanza en \(x=p-1\), luego

$$g(pq,pr,qr)=(p-1)qr+p(qr-q-r).$$

Al expandir:

$$g(pq,pr,qr)=2pqr-pq-pr-qr.$$

6) Ejemplo trabajado: \((2,3,5)\)

Los generadores son

$$6,\ 10,\ 15.$$

El núcleo de dos generadores da

$$g(3,5)=15-3-5=7.$$

Como \(p=2\), solo hay dos clases residuales:

$$G_0=0\cdot15+2\cdot7=14,\qquad G_1=1\cdot15+2\cdot7=29.$$

Por tanto, la respuesta global es \(29\).

7) Segundo ejemplo de control: \((2,7,11)\)

Aquí

$$g(7,11)=77-7-11=59.$$

Entonces

$$G_0=2\cdot59=118,\qquad G_1=77+2\cdot59=195,$$

y por eso

$$g(14,22,77)=195.$$

8) Suma sobre todos los tríos primos

Una vez conocida la fórmula cerrada, el problema original se convierte simplemente en

$$\sum_{p \lt q \lt r \lt L}(2pqr-pq-pr-qr).$$

Lógica del Código

1) Criba. primes_below(limit) genera todos los primos menores que el límite.

2) Fórmula cerrada. frobenius_semiprime_triple(p,q,r) devuelve

$$2pqr-pq-pr-qr.$$

3) Validación brute force. Para tríos pequeños, el programa compara esta fórmula con una DP de alcanzabilidad.

4) Acumulación. solve_sum() recorre todos los tríos \(p \lt q \lt r\) y suma en 128 bits.

5) Checkpoint pequeño. Para primos menores que \(10\), el total es

$$29+43+81+139=292.$$

Complejidad

Si \(m=\pi(L)\), la criba cuesta aproximadamente \(O(L\log\log L)\), y el recorrido triple cuesta \(O(m^3)\), que es la parte dominante. La memoria es \(O(m)\).

Lecturas

  1. Problema: https://projecteuler.net/problem=278
  2. Problema de Frobenius: https://es.wikipedia.org/wiki/Problema_de_Frobenius
  3. Semigrupos numéricos: https://es.wikipedia.org/wiki/Semigrupo_num%C3%A9rico

问题概述

对互不相同的素数 \(p \lt q \lt r\),定义三个半素数

$$a=pq,\qquad b=pr,\qquad c=qr.$$

对每个素数三元组,要求不能表示成 \(a,b,c\) 的非负线性组合的最大整数。然后把这个 Frobenius 值对所有三元组求和。最终 Project Euler 数字答案照例省略,这里只解释公式为什么成立。

数学方法

1) 需要研究的半群

定义

$$S=\langle pq,pr,qr\rangle=\{x\cdot pq+y\cdot pr+z\cdot qr:\ x,y,z\ge0\}.$$

题目要找的是不属于 \(S\) 的最大整数。

2) 按模 \(p\) 的剩余类重写

因为

$$pq=p\cdot q,\qquad pr=p\cdot r,$$

任何可表示数都可以写成

$$N=z\cdot qr+p\cdot m,$$

其中

$$m\in \langle q,r\rangle=\{u\cdot q+v\cdot r:\ u,v\ge0\}.$$

于是三生成元问题被拆成了模 \(p\) 的各个剩余类问题。

由于 \(p\) 与 \(q,r\) 都不同,

$$\gcd(qr,p)=1.$$

因此乘以 \(qr\) 会在模 \(p\) 下置换所有剩余类。于是每个整数 \(N\) 都唯一对应某个

$$x\in\{0,1,\dots,p-1\}$$

使得

$$N\equiv x\cdot qr\pmod p,$$

从而可写为

$$N=x\cdot qr+p\cdot m.$$

3) 二元核心:\(q,r\) 的 Sylvester 公式

因为 \(q\) 和 \(r\) 互素,经典公式给出

$$g(q,r)=qr-q-r.$$

这意味着:

$$m\notin\langle q,r\rangle\Longrightarrow m\le qr-q-r,$$

并且所有

$$m\gt qr-q-r$$

都已经属于 \(\langle q,r\rangle\)。

4) 固定剩余类中的最大不可表示数

固定 \(x\in\{0,\dots,p-1\}\)。在这一类中考虑

$$N=x\cdot qr+p\cdot m.$$

若 \(m\gt qr-q-r\),则 \(m\in\langle q,r\rangle\),因此 \(N\in S\)。所以这一类中最大的缺失值自然候选是

$$G_x=x\cdot qr+p(qr-q-r).$$

为什么 \(G_x\) 不可表示? 若反设 \(G_x\in S\),则存在 \(z,u,v\ge0\) 使得

$$G_x=z\cdot qr+p(q u+r v).$$

按模 \(p\) 看,必须有

$$z\equiv x\pmod p,$$

所以可以写成

$$z=x+p t,\qquad t\ge0.$$

代回去得到

$$x\cdot qr+p(qr-q-r)=(x+p t)\cdot qr+p(q u+r v).$$

消去 \(x\cdot qr\) 并除以 \(p\),得到

$$qr-q-r=t\cdot qr+q u+r v.$$

若 \(t\ge1\),右边至少是 \(qr\),而左边小于 \(qr\),矛盾。所以 \(t=0\)。于是

$$qr-q-r=q u+r v,$$

这又与 \(qr-q-r\) 是 \(q,r\) 的 Frobenius 数矛盾。因此 \(G_x\notin S\)。

为什么同一剩余类中更大的数都可表示? 若 \(N\gt G_x\) 且 \(N\equiv x\cdot qr\pmod p\),则

$$N=x\cdot qr+p\cdot m$$

并且有

$$m\gt qr-q-r.$$

于是 \(m\in\langle q,r\rangle\),从而 \(N\in S\)。

所以 \(G_x\) 正是该剩余类中最大的不可表示数。

5) 对所有剩余类取最大值

全局 Frobenius 数因此为

$$g(pq,pr,qr)=\max_{0\le x\le p-1}\Bigl(x\cdot qr+p(qr-q-r)\Bigr).$$

它在 \(x=p-1\) 处达到最大,因此

$$g(pq,pr,qr)=(p-1)qr+p(qr-q-r).$$

展开后得到

$$g(pq,pr,qr)=2pqr-pq-pr-qr.$$

6) 工作示例:\((2,3,5)\)

三个生成元是

$$6,\ 10,\ 15.$$

二元核心部分有

$$g(3,5)=15-3-5=7.$$

因为 \(p=2\),只需看两个剩余类:

$$G_0=0\cdot15+2\cdot7=14,\qquad G_1=1\cdot15+2\cdot7=29.$$

所以全局答案是 \(29\)。

7) 第二个检查点示例:\((2,7,11)\)

这里

$$g(7,11)=77-7-11=59,$$

于是

$$G_0=2\cdot59=118,\qquad G_1=77+2\cdot59=195,$$

从而

$$g(14,22,77)=195.$$

8) 对所有素数三元组求和

一旦闭式成立,原问题就只剩下

$$\sum_{p \lt q \lt r \lt L}(2pqr-pq-pr-qr).$$

代码逻辑

1) 筛素数。 primes_below(limit) 生成所有小于上界的素数。

2) 闭式函数。 frobenius_semiprime_triple(p,q,r) 直接返回

$$2pqr-pq-pr-qr.$$

3) 小规模暴力校验。 代码对小素数三元组用可达性 DP 验证闭式无误。

4) 最终累加。 solve_sum() 枚举所有 \(p \lt q \lt r\),并用 128 位整数累计和。

5) 小检查点。 当素数小于 \(10\) 时,总和为

$$29+43+81+139=292.$$

复杂度分析

设 \(m=\pi(L)\)。筛法复杂度约为 \(O(L\log\log L)\),三重枚举复杂度为 \(O(m^3)\),这是主耗时。空间复杂度为 \(O(m)\)。

延伸阅读

  1. 题目页面: https://projecteuler.net/problem=278
  2. Frobenius 硬币问题: https://zh.wikipedia.org/wiki/硬币问题
  3. 数值半群: https://en.wikipedia.org/wiki/Numerical_semigroup

Краткое описание

Для различных простых \(p \lt q \lt r\) рассматриваются три полупростых числа

$$a=pq,\qquad b=pr,\qquad c=qr.$$

Для каждого такого тройного набора требуется найти наибольшее число, не представимое как неотрицательная линейная комбинация \(a,b,c\). Затем эти значения суммируются по всем простым тройкам ниже заданной границы. Как и на других страницах, финальный ответ Project Euler здесь не приводится; важна сама формула и её вывод.

Математический подход

1) Исследуемая полугруппа

Положим

$$S=\langle pq,pr,qr\rangle=\{x\cdot pq+y\cdot pr+z\cdot qr:\ x,y,z\ge0\}.$$

Нужно найти наибольшее целое число, не принадлежащее \(S\).

2) Разложение по классам вычетов по модулю \(p\)

Поскольку

$$pq=p\cdot q,\qquad pr=p\cdot r,$$

любой представимый элемент имеет вид

$$N=z\cdot qr+p\cdot m,$$

где

$$m\in \langle q,r\rangle=\{u\cdot q+v\cdot r:\ u,v\ge0\}.$$

То есть задача с тремя генераторами сводится к анализу классов вычетов по модулю \(p\).

Так как \(p\) отлично от \(q\) и \(r\), имеем

$$\gcd(qr,p)=1.$$

Следовательно, умножение на \(qr\) переставляет все классы по модулю \(p\). Поэтому для каждого \(N\) существует единственное

$$x\in\{0,1,\dots,p-1\}$$

такое, что

$$N\equiv x\cdot qr\pmod p,$$

и тогда

$$N=x\cdot qr+p\cdot m.$$

3) Двумерное ядро: формула Сильвестра для \(q\) и \(r\)

Поскольку \(q\) и \(r\) взаимно просты, действует классическая формула

$$g(q,r)=qr-q-r.$$

Она означает:

$$m\notin\langle q,r\rangle\Longrightarrow m\le qr-q-r,$$

а всякое

$$m\gt qr-q-r$$

уже лежит в \(\langle q,r\rangle\).

4) Максимально непредставимое число в фиксированном классе

Фиксируем \(x\in\{0,\dots,p-1\}\). В этом классе числа имеют вид

$$N=x\cdot qr+p\cdot m.$$

Если \(m\gt qr-q-r\), то \(m\in\langle q,r\rangle\), а значит \(N\in S\). Поэтому естественный кандидат на максимальное непредставимое число:

$$G_x=x\cdot qr+p(qr-q-r).$$

Почему \(G_x\) не представимо? Предположим противное. Тогда

$$G_x=z\cdot qr+p(q u+r v)$$

для некоторых \(z,u,v\ge0\). По модулю \(p\) обязательно

$$z\equiv x\pmod p,$$

то есть

$$z=x+p t,\qquad t\ge0.$$

Подстановка даёт

$$x\cdot qr+p(qr-q-r)=(x+p t)\cdot qr+p(q u+r v).$$

После сокращения \(x\cdot qr\) и деления на \(p\) получаем

$$qr-q-r=t\cdot qr+q u+r v.$$

Если \(t\ge1\), правая часть не меньше \(qr\), а левая равна \(qr-q-r\lt qr\), противоречие. Значит \(t=0\), и тогда

$$qr-q-r=q u+r v,$$

что невозможно, потому что \(qr-q-r\) — Frobenius-число для \(q\) и \(r\). Следовательно, \(G_x\) действительно не представимо.

Почему всё большее в том же классе уже представимо? Пусть \(N\gt G_x\) и \(N\equiv x\cdot qr\pmod p\). Тогда

$$N=x\cdot qr+p\cdot m$$

и из неравенства \(N\gt G_x\) следует

$$m\gt qr-q-r.$$

Значит \(m\in\langle q,r\rangle\), следовательно \(N\in S\).

Итак, \(G_x\) — точное наибольшее непредставимое число в классе \(x\).

5) Максимум по всем классам

Теперь глобальное значение равно

$$g(pq,pr,qr)=\max_{0\le x\le p-1}\Bigl(x\cdot qr+p(qr-q-r)\Bigr).$$

Максимум достигается при \(x=p-1\), так что

$$g(pq,pr,qr)=(p-1)qr+p(qr-q-r).$$

После раскрытия скобок:

$$g(pq,pr,qr)=2pqr-pq-pr-qr.$$

6) Пример: \((2,3,5)\)

Генераторы равны

$$6,\ 10,\ 15.$$

Для пары \((3,5)\)

$$g(3,5)=15-3-5=7.$$

Так как \(p=2\), есть два класса:

$$G_0=0\cdot15+2\cdot7=14,\qquad G_1=1\cdot15+2\cdot7=29.$$

Значит, глобальный ответ — \(29\).

7) Второй checkpoint: \((2,7,11)\)

Здесь

$$g(7,11)=77-7-11=59,$$

поэтому

$$G_0=2\cdot59=118,\qquad G_1=77+2\cdot59=195,$$

и

$$g(14,22,77)=195.$$

8) Сумма по всем простым тройкам

После вывода формулы исходная задача сводится к сумме

$$\sum_{p \lt q \lt r \lt L}(2pqr-pq-pr-qr).$$

Логика кода

1) Решето. primes_below(limit) строит список простых.

2) Закрытая формула. frobenius_semiprime_triple(p,q,r) возвращает

$$2pqr-pq-pr-qr.$$

3) Проверка brute force. На малых примерах код сравнивает формулу с полной таблицей достижимости.

4) Финальная сумма. solve_sum() перебирает все \(p\lt q\lt r\) и аккумулирует результат в 128-битной переменной.

5) Малый контроль. Для простых меньше \(10\) получается

$$29+43+81+139=292.$$

Анализ сложности

Если \(m=\pi(L)\), то решето стоит примерно \(O(L\log\log L)\), а тройной перебор — \(O(m^3)\) и доминирует по времени. Память: \(O(m)\).

Дополнительные материалы

  1. Условие: https://projecteuler.net/problem=278
  2. Задача Фробениуса: https://ru.wikipedia.org/wiki/Задача_Фробениуса
  3. Числовые полугруппы: https://ru.wikipedia.org/wiki/Числовая_полугруппа

ملخص المسألة

لأوليات مختلفة \(p \lt q \lt r\) نعرّف الأعداد نصف الأولية الثلاثة

$$a=pq,\qquad b=pr,\qquad c=qr.$$

لكل ثلاثي أولي نريد أكبر عدد لا يمكن كتابته كمزيج خطي غير سالب من \(a,b,c\). ثم نجمع هذه القيمة على جميع الثلاثيات تحت الحد المعطى. وكالعادة لا نعرض الجواب النهائي لمسألة Project Euler؛ المهم هنا هو اشتقاق الصيغة المغلقة.

المنهج الرياضي

1) شبه الزمرة التي ندرسها

لنعرّف

$$S=\langle pq,pr,qr\rangle=\{x\cdot pq+y\cdot pr+z\cdot qr:\ x,y,z\ge0\}.$$

المطلوب هو أكبر عدد صحيح لا ينتمي إلى \(S\).

2) إعادة كتابة كل عدد بحسب الباقي modulo \(p\)

بما أن

$$pq=p\cdot q,\qquad pr=p\cdot r,$$

فإن كل عدد قابل للتمثيل يمكن كتابته بالشكل

$$N=z\cdot qr+p\cdot m,$$

حيث

$$m\in \langle q,r\rangle=\{u\cdot q+v\cdot r:\ u,v\ge0\}.$$

إذن المسألة ذات المولدات الثلاثة تنقسم إلى فئات بواقي modulo \(p\).

ولأن \(p\) يختلف عن \(q\) و\(r\)، فإن

$$\gcd(qr,p)=1.$$

ومن ثم فإن الضرب في \(qr\) يبدّل جميع الفئات modulo \(p\). لذلك لكل عدد \(N\) يوجد وحيدًا

$$x\in\{0,1,\dots,p-1\}$$

بحيث

$$N\equiv x\cdot qr\pmod p,$$

وعندها نستطيع كتابة

$$N=x\cdot qr+p\cdot m.$$

3) اللبّ الثنائي: صيغة Sylvester للعددين \(q\) و\(r\)

بما أن \(q\) و\(r\) متباينان نسبيًا، فلدينا الصيغة الكلاسيكية

$$g(q,r)=qr-q-r.$$

وهذا يعني أن

$$m\notin\langle q,r\rangle\Longrightarrow m\le qr-q-r,$$

وكل عدد

$$m\gt qr-q-r$$

ينتمي بالفعل إلى \(\langle q,r\rangle\).

4) أكبر عدد غير قابل للتمثيل في فئة باقٍ ثابتة

ثبّت \(x\in\{0,\dots,p-1\}\). الأعداد في هذه الفئة تكتب بالشكل

$$N=x\cdot qr+p\cdot m.$$

إذا كان \(m\gt qr-q-r\)، فإن \(m\in\langle q,r\rangle\)، وبالتالي \(N\in S\). لذلك المرشح الطبيعي لأكبر عدد مفقود في هذه الفئة هو

$$G_x=x\cdot qr+p(qr-q-r).$$

لماذا لا يمكن تمثيل \(G_x\)؟ افترض العكس. عندئذ يوجد \(z,u,v\ge0\) بحيث

$$G_x=z\cdot qr+p(q u+r v).$$

وبالنظر modulo \(p\)، لا بد أن

$$z\equiv x\pmod p,$$

أي

$$z=x+p t,\qquad t\ge0.$$

بالتعويض نحصل على

$$x\cdot qr+p(qr-q-r)=(x+p t)\cdot qr+p(q u+r v).$$

وبعد حذف \(x\cdot qr\) والقسمة على \(p\) نحصل على

$$qr-q-r=t\cdot qr+q u+r v.$$

إذا كان \(t\ge1\)، فالطرف الأيمن لا يقل عن \(qr\)، بينما الطرف الأيسر هو \(qr-q-r\lt qr\)، وهذا مستحيل. إذن \(t=0\)، وعندها يصبح

$$qr-q-r=q u+r v,$$

وهذا يناقض أن \(qr-q-r\) هو عدد Frobenius للعددين \(q\) و\(r\). لذلك فـ \(G_x\) غير قابل للتمثيل فعلًا.

ولماذا كل عدد أكبر منه في الفئة نفسها قابل للتمثيل؟ إذا كان \(N\gt G_x\) و\(N\equiv x\cdot qr\pmod p\)، فلدينا

$$N=x\cdot qr+p\cdot m$$

مع

$$m\gt qr-q-r.$$

إذن \(m\in\langle q,r\rangle\)، ومن ثم \(N\in S\).

إذًا \(G_x\) هو بالضبط أكبر عدد غير قابل للتمثيل في تلك الفئة.

5) أخذ أكبر قيمة على جميع الفئات

وعليه فإن عدد Frobenius الكلي يساوي

$$g(pq,pr,qr)=\max_{0\le x\le p-1}\Bigl(x\cdot qr+p(qr-q-r)\Bigr).$$

ويبلغ هذا الحد الأقصى عند \(x=p-1\)، ومن ثم

$$g(pq,pr,qr)=(p-1)qr+p(qr-q-r).$$

وبتوسيع التعبير نحصل على

$$g(pq,pr,qr)=2pqr-pq-pr-qr.$$

6) مثال عملي: \((2,3,5)\)

المولدات هي

$$6,\ 10,\ 15.$$

أما المسألة الثنائية الأساسية فتعطي

$$g(3,5)=15-3-5=7.$$

ولأن \(p=2\)، فلدينا فئتان فقط:

$$G_0=0\cdot15+2\cdot7=14,\qquad G_1=1\cdot15+2\cdot7=29.$$

إذًا الجواب الكلي هو \(29\).

7) مثال تحقق ثانٍ: \((2,7,11)\)

هنا

$$g(7,11)=77-7-11=59,$$

ومن ثم

$$G_0=2\cdot59=118,\qquad G_1=77+2\cdot59=195,$$

وبالتالي

$$g(14,22,77)=195.$$

8) الجمع على جميع الثلاثيات الأولية

بعد إثبات الصيغة المغلقة تصبح المسألة الأصلية مجرد

$$\sum_{p \lt q \lt r \lt L}(2pqr-pq-pr-qr).$$

منطق الكود

1) منخل الأوليات. primes_below(limit) يولد جميع الأوليات تحت الحد.

2) دالة الصيغة المغلقة. frobenius_semiprime_triple(p,q,r) تعيد مباشرة

$$2pqr-pq-pr-qr.$$

3) تحقق brute force. في الحالات الصغيرة يقارن البرنامج هذه الصيغة مع جدول وصول كامل.

4) التجميع النهائي. solve_sum() يمر على جميع \(p \lt q \lt r\) ويجمع الناتج باستخدام 128 بت.

5) نقطة تحقق صغيرة. للأوليات الأصغر من \(10\) يكون المجموع

$$29+43+81+139=292.$$

تحليل التعقيد

إذا كان \(m=\pi(L)\)، فإن المنخل يكلف تقريبًا \(O(L\log\log L)\)، بينما تعداد جميع الثلاثيات يكلف \(O(m^3)\) وهو الجزء المسيطر زمنيًا. الذاكرة \(O(m)\).

مراجع إضافية

  1. صفحة المسألة: https://projecteuler.net/problem=278
  2. مسألة Frobenius: https://ar.wikipedia.org/wiki/مسألة_فروبينيوس
  3. أشباه الزمر العددية: https://en.wikipedia.org/wiki/Numerical_semigroup