I problemi nel sito di Project Euler riguarderebbero almeno problemi basati sullo sfondo in diverse aree come la matematica discreta, la teoria dei numeri, le strutture dei dati, la teoria generale degli algoritmi e la conoscenza delle capacità generali di problem solving. Per trovare ulteriori spiegazioni su una domanda specifica, ti suggerisco di familiarizzare con l'argomento area le domande. Ad esempio, per risolvere il problema "Trova il 10001esimo primo", è necessario conoscere le proprietà del numero primo solitamente discusso in Teoria dei numeri e / o Matematica discreta e quindi utilizzare questa conoscenza per ottenere un buon algoritmo.
I buoni libri sulle aree tematiche di cui sopra sono troppi per elencarli (es. Risoluzione dei problemi e Concetti di programmazione (9a edizione)), è possibile cercarli facilmente per nome del soggetto come "Problem Solving", ma poi di nuovo, il bene è un po 'relativo e dipende dal tuo background e dal tuo linguaggio di programmazione preferito.
Wikipedia offre una spiegazione buona ma a volte complessa per la maggior parte degli argomenti di cui sopra, ad esempio i numeri primi sono discussi in Numeri primi di Wikipedia e Wolfarm discute l'argomento ai numeri primi wolfram . I siti specializzati di StackExchange dovrebbero essere consultati anche per discussioni fruttuose. Questo link potrebbe essere utile Tutorial sugli algoritmi sull'overflow dello stack
ACM offre alcuni libri / capitoli gratuiti su: ACMSolver
Spero che questo aiuti.