# Seventeen or Bust

Seventeen or Bust è un progetto di calcolo distribuito per scoprire qual è il più piccolo numero di Sierpiński. Il progetto fu fondato nel 2002 da Louis Helm, all'università del Michigan e David Norris all'università dell'Illinois.

## Scopo del progetto

I numeri di Sierpinski sono tutti i $k$ interi positivi dispari tali che i numeri $k\cdot 2^{n}+1$ siano composti per ogni numero naturale $n$.
John Selfridge dimostrò che $k=78557$ è un numero di Sierpinski e ipotizzò che fosse il più piccolo.
Prima che il progetto iniziasse era stato dimostrato che tutti i numeri positivi dispari precedenti a $78557$ non erano numeri di Sierpinski tranne per 17 valori. I primi cinque numeri primi furono trovati durante i primi due mesi del progetto poiché il numero di cifre era di circa un milione. Gli altri numeri primi erano invece dislocati intorno alle 3, 5, 7 e 9 milioni di cifre. Col crescere degli n diventa sempre più grande il potere di calcolo necessario al progetto e questo spiega il distanziarsi esponenziale della scoperta dei numeri. Tuttavia il progetto riesce a procedere grazie all'aumento giornaliero dei partecipanti al progetto che ha consentito la scoperta di circa un numero primo all'anno fino al 2007.

## Funzionamento

Per dimostrare l'ipotesi di Selfridge è sufficiente trovare un numero primo per ognuno dei 17 candidati rimanenti. Il sistema procede ad inviare ad ogni utente partecipante che ha installato il software del progetto uno dei rimanenti valori di $k$ da testare ed un particolare valore di $n$. Il volontario, fornendo potenza di calcolo, controllerà se il numero risultante dalla formula $k\cdot 2^{n}+1$ è un numero primo o no usando i valori particolari di $k$ ed $n$ che il sistema gli ha fornito. Poiché i valori di $k$ sono fissati il sistema fornisce valori di $n$ sempre crescenti mano a mano che le coppie $(k,n)$ sono testate. Tutti i valori di $k$ vengono testati contemporaneamente ed i valori di $n$crescono pressoché omogeneamente. Quando un partecipante scopre il valore di n che fornisce il numero primo la ricerca per quel particolare $k$ si ferma ed i fondatori del progetto (e solo loro) testano il numero con molti elaboratori per ottenerne una precisione elevatissima. Dopo circa una settimana di test annunciano la scoperta del numero primo. Il 26 marzo 2007 fu scoperto il decimo numero primo, mentre il 17 ottobre 2007 fu scoperto l'undicesimo, lasciando alla ricerca i restanti ultimi 6 valori di $k$.
Esiste poi un secondo circuito, nascosto ai più, in cui ogni singolo controllo per le coppie $(k,n)$ viene ricalcolato una seconda volta. Questi secondi controlli vengono chiamati "double check" (DC). Il double check viene effettuato per molteplici ragioni. La più importante è per eliminare il dubbio che un errore di un calcolatore non abbia consentito la scoperta del numero primo che il sistema cerca. Le altre motivazioni si riferiscono all'errore commesso nel calcolo. Quando due numeri vengono calcolati da due diversi pc forniscono lo stesso risultato ma con precisioni differenti e questo permette di creare una statistica sul livello di precisione del progetto e del software di calcolo.

## Successi

In tabella lo stato dei 17 numeri:
| Candidati | k | n | Data della scoperta | Autore della scoperta |
| 1º | 4847 | 3321063 | 15 ottobre 2005 | Richard Hassler |
| 2º | 5359 | 5054502 | 6 dicembre 2003 | Randy Sundquist |
| 3º | 10223 | 31172165 | 31 ottobre 2016 | Szabolcs Peter |
| 4º | 19249 | 13018586 | 26 marzo 2007 | Konstantin Agafonov |
| 5º | 21181 | | In ricerca | - |
| 6º | 22699 | | In ricerca | - |
| 7º | 24737 | | In ricerca | - |
| 8º | 27653 | 9167433 | 8 giugno 2005 | Derek Gordon |
| 9º | 28433 | 7830457 | 30 dicembre 2004 | Anonimo |
| 10º | 33661 | 7031232 | 17 ottobre 2007 | Sturle Sunde |
| 11º | 44131 | 995972 | 6 dicembre 2002 | deviced (nickname) |
| 12º | 46157 | 698207 | 27 novembre 2002 | Stephen Gibson |
| 13º | 54767 | 1337287 | 22 dicembre 2002 | Peter Coels |
| 14º | 55459 | | In ricerca | - |
| 15º | 65567 | 1013803 | 3 dicembre 2002 | James Burt |
| 16º | 67607 | | In ricerca | - |
| 17º | 69109 | 1157446 | 7 dicembre 2002 | Sean DiMichele |

## Software

Il software del progetto chiamato sb è disponibile in versioni dedicate per BeOS, FreeBSD, GNU/Linux e Microsoft Windows. Il software è ottimizzato per sfruttare tutte le istruzioni specifiche delle architetture più comuni (MMX, SSE, SSE2, SSE3 etc.) Per sfruttare al meglio i sistemi con più processori o multicore si lanciano più istanze del programma da cartelle differenti, una per ogni core di ogni processore.
Per fornire potenza di calcolo per il double check non è necessario ricevere un'autorizzazione specifica ma è sufficiente cambiare alcune impostazioni. Per chi utilizza la versione di sb per GNU/Linux la modifica è molto facile: basta aggiungere nel file di configurazione il suffisso "QQQsecondpass" in modo da trasformarlo in "usernameQQQsecondpass". Per gli utenti di Microsoft Windows il parametro deve essere modificato nel registro di sistema alla chiave "HKEY_LOCAL_MACHINE-->SOFTWARE-->LhDn-->sob-->".
Dal 10 gennaio 2005 è possibile specificare fino a sette parametri di specifiche al software modificando l'username in "usernameQQQparametroQQQparametroQQQparametro". Ad esempio si può decidere di lavorare solo per un k specifico impostando: "usernameQQQk33661".