Notifiche
Cancella tutti

[Risolto] Esercizio informatica

  

0

What's the sum of the prime numbers in the sequence? Hint: they are all 2-digits numbers...
$$
\begin{array}{l}
6338385388132756915132445321482251403947162793332011407635571 \\
349764116231882185155852265216630636414711937991396522618518 I \\
77344181276746209043776044391996402547647542213689889093 \\
\text { I } 347834759693726947140691335302639135573356829568073794068 \\
6065545925204270311252588661984826753530234473424172579059 \\
\text { 6I4943257199753492319365782977345610983119482070759098604 } \\
445281359191891413025471367248670301151557629594631852810817 \\
9403194908028437371253690297967316823759536705018845122542 \\
28473676527371049786223819588581933384729505331923328931853 \\
702223738052698 \text { I } 43359171543222187 \text { III25727I4518432II83536II8 1087 } \\
47633824177382992964776 \text { II } 434832676287044698587767788 \text { II } 342 \\
474382243838273688237625229619384989957797343 \text { II } 587646177 \text { oI } \\
583982853727554629292391293114943849535801061781972511683898 \\
52364695031147363549385265456367579103692279239239841671595 \\
\text { II927178908742212572799285133329616716448396827641163876153 } \\
236717059828099504112282851349517985570383975816713873125478 \\
3577384577454152417553653987398537645604457713090634736426 \\
\text { I4769655572241712692091997710917264312415972776301387432038 } \\
797666283270599873131423588873633154334742968429981048897 \\
4165544533192184983557840446716476035367593786527999163568 \\
\text { 03520203720807465697538129766281241965967892276862052294 } \\
910777741691734895625173381421862216991364039431195515588372 \\
968392171756079154823344365755421172777319743412129885215645 \\
862171983145794585095399651496460509884216036346343498263 \\
41183673407270557138385665816765223044132317556460936927109 \\
4419256216227993127121919865962111222986130113323432351883642 \\
56276966496055991057735490485019983^8 810561977481745727759 I \\
540735139985860787160627134409271271294461575433799268744 \\
74129019246585358642652519751230704551253569953099155014348 \text { I } \\
368789705845284947766633297322387731108_3 83726433887330272 \\
526428433603929306537273474647145794755737083 \text { II8 } 8175976879 \\
95178993756708876939283148947423979221949263341719257377 \text { oI } \\
362183972398934886479567453597049633580295674921449621946 \\
3273294882138191645713683430258090148928989542682780642235 \\
3347583059 \\
\end{array}
$$

4480BD2C E13A 4D87 9723 F8D6E6B9CD4E

Mi servirebbe una mano per risolvere questo esercizio.

Autore
Etichette discussione
2 Risposte



1

La stringa che riempie la pagina dell'Enigma #3 consiste di sole cifre decimali e il riddle non è affatto un enigma come il nome pretenderebbe, ma ha più il tono di una sfida "ce la fai a dirmi la somma di tutti i numeri primi di due cifre che ci sono nella superstringa?"
Ebbene sì!
Ci si riesce abbastanza facilmente se la stringa è nella variabile "s" i cui caratteri siano indirizzabili individualmente o, meglio ancora, se la variabile "s" è un array o una lista in cui ciascun elemento abbia il valore numerico della cifra corrispondente.
Per illustrare l'algoritmo risolutivo penso a un'implementazione in ambiente Python in cui disporre di liste con elementi eterogenei (non uniformemente tipizzati) e indirizzabili individualmente.
------------------------------
I numeri primi il cui numerale decimale abbia due cifre sono solo quelli dal quinto al venticinquesimo
{11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97}
su questo fatto costruisco una lista "L" di dieci subliste "L[cifra1]" ciascuna contenente la lista delle possibili cifre di unità che formano il numero primo che ha "cifra1" decine.
L = [[], [1, 3, 7, 9], [3, 9], [1, 7], [1, 3, 7], [3, 9], [1, 7], [1, 3, 9], [3, 9], [7]]
s = [6, 3, 3, ..., 0, 5, 9]
------------------------------
ALGORITMO riddle3(s)
1) se s non è una lista: terminare con Errore1 // return - 1
2) porre n = numero di elementi in s // n = len(s)
3) se n < 2: terminare con Errore2 // return - 2
4a) porre L = [[], [1, 3, 7, 9], [3, 9], [1, 7], [1, 3, 7], [3, 9], [1, 7], [1, 3, 9], [3, 9], [7]]
4b) porre totale = 0
5) per ogni indice da zero al penultimo s[n - 2] // for indice in range(n - 1)
5a) se s[indice] non è un intero da zero a nove: passare al prossimo indice // continue
5b) se s[indice + 1] non è un intero da zero a nove: passare al prossimo indice // continue
5c) se s[indice + 1] in L[s[indice]]: porre totale = totale + 10*s[indice] + s[indice + 1]
6) terminare con totale // return totale
---------------
NOTA: i passi #{1, 3, 5a, 5b} si possono omettere se e solo se l'ambiente che attiva riddle3(s) garentisce la precondizione che s sia una lista con almeno due elementi e tutti gli elementi siano valori di cifre.



2

Stai scherzando, vero?



Risposta




SOS Matematica

4.6
SCARICA