gear667 Posted November 11, 2009 Share Posted November 11, 2009 ho notato che da me utilizza il thread 7 mentre gli altri restano all'1-2% di utilizzo, come tempo di calcolo con la visualizzazione varia tra l'1 e i 2 secondi mentre senza visualizzazione il calcolo è istantaneo (sono tutte misurazioni a occhio) Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 11, 2009 Author Share Posted November 11, 2009 funziona ma a me carica solo 1 core... il 3 come vedi dallo screen. direi che ci metta sui 20secondi circa per 16M!! incredibile!!!:ave: ora ci metto il timer e lo riposto sul mio server, in teroria i cores li sfutta, ma è talmenente ottimizzato il codice, che a momenti fà a meno della cpu Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 11, 2009 Author Share Posted November 11, 2009 http://www.xstreme.it/pcfast2.zip aggiunto timer in millescondi è un pò di grafica postatemi gli screen , grazie Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 12, 2009 Author Share Posted November 12, 2009 cioè ma mi stai dicendo che se non tolgo la spunta su "visualizza numeri primi" e faccio calcola. quando mi dice il numero di numeri primi trovati lui li ha davvero trovati tutti????ci mette un secondo scarso se non fai la visualizzazione! è mostruoso! scarica la seconda versione, e valuta di persona se li trova davvero tutti :perfido: Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 12, 2009 Author Share Posted November 12, 2009 funziona ma a me carica solo 1 core... il 3 come vedi dallo screen. direi che ci metta sui 20secondi circa per 16M!! incredibile!!!:ave: :AAAAH: 20 secondi ? :AAAAH: cosa hai ...un Vic 20 ? :asd: Quote Link to comment Share on other sites More sharing options...
Le085 Posted November 12, 2009 Share Posted November 12, 2009 e6700 @ 3ghz 2x1gb ddr2-800 c'è ancora notevole disparità visualizzando o no i numeri...cosa che è un po' strana ma ci potrebbe stare (quando li visualizza la scheda video o chi per lei inizia a fischiare....) ps: non si potrebbe mettere uan check box che consenta di togliere la spunta a visualizza i numeri? così una volta messa non si toglie più... Quote Link to comment Share on other sites More sharing options...
apix_1024 Posted November 12, 2009 Share Posted November 12, 2009 :AAAAH: 20 secondi ? :AAAAH: cosa hai ...un Vic 20 ? :asd: per i 16milioni non saranno 20 ma poco ci cala. dopo che li ha visualizzati tutti sta a lavorare un pò ancora il core che ha fatto i conti. forse 5 o 7 secondi e quindi conto anche quelli. per i numeri primi bhò forse sono 3-4 sec. la stima a 20sec era spannometrica.. forse sono 10-12 Quote Link to comment Share on other sites More sharing options...
apix_1024 Posted November 12, 2009 Share Posted November 12, 2009 questa versione è migliorara un pò cmq 16milioni in: 420ms no visualizzazione 7260ms visualizzazione Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 12, 2009 Author Share Posted November 12, 2009 (edited) per i 16milioni non saranno 20 ma poco ci cala. dopo che li ha visualizzati tutti sta a lavorare un pò ancora il core che ha fatto i conti. forse 5 o 7 secondi e quindi conto anche quelli. per i numeri primi bhò forse sono 3-4 sec. la stima a 20sec era spannometrica.. forse sono 10-12 no caro, quello che fà il tuo processore dopo i miei calcoli sono fatti suoi , io prendo i millisecondi dal timer di windows e li metto in una variabile dall'istante in cui inizia il primo calcolo, alla fine del risultato dell'ultimo calcolo, riprendo i millisecondi dal timer di windows, e faccio la sottrazione. Edited November 12, 2009 by Xstreme Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 12, 2009 Author Share Posted November 12, 2009 e6700 @ 3ghz2x1gb ddr2-800 c'è ancora notevole disparità visualizzando o no i numeri...cosa che è un po' strana ma ci potrebbe stare (quando li visualizza la scheda video o chi per lei inizia a fischiare....) ps: non si potrebbe mettere uan check box che consenta di togliere la spunta a visualizza i numeri? così una volta messa non si toglie più... in teoria ed anche in pratica, il risultato delle operazioni matematiche nude e crude è quello senza display, quando utilizzi il display dei numeri, ci si mette di mezzo anche il processore della scheda grafica (GPU), quindi, tutto quello che succede a livello grafico incide sulla potenza di calcolo effettiva della sola CPU, per concludere quando si finisce qualsiasi tipo di test o di benchmark, che fà uso di interfaccia grafica il risultato è SEMPRE la combinazione di velocità di CPU & GPU, a meno che quando si fanno i calcoli, non si utilizza l'uso di qualsiasi tipo di grafica, con un apposita opzione di scelta, l'inconveniente e che non sai a che punto è il processo di test o benchmark, calcolando che le ultime release di windows fanno pesante uso di grafica testuale e non, (il testo sempre grafica è) puoi ben intuire l'influenza dell GPU sul risultato finale del test. Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 12, 2009 Author Share Posted November 12, 2009 questa versione è migliorara un pò cmq 16milioni in: 420ms no visualizzazione 7260ms visualizzazione forse mi sono spiegato male io, anzi, è cosi.... su i primi 16 milioni di numeri interi ci sono 1031130 numeri primi quindi ha calcolato l'estrazione di 1031130 numeri primi da 16 milioni di numeri interi in 420 ms ok ? Quote Link to comment Share on other sites More sharing options...
Totocellux Posted November 12, 2009 Share Posted November 12, 2009 eh si, devo dire che con l'algoritmo di estrazione hai davvero fatto un ottimo lavoro :clapclap: P5B Premium E5200@3.586Ghz (11x326) 4GB Ram 407Mhz@5-5-5-15 Windows 7 Ultimate build 7100 64bit senza visualizzazione: 0.421sec con vis: 6.487sec Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 12, 2009 Author Share Posted November 12, 2009 eh si, devo dire che con l'algoritmo di estrazione hai davvero fatto un ottimo lavoro :clapclap: P5B Premium E5200@3.586Ghz (11x326) 4GB Ram 407Mhz@5-5-5-15 Windows 7 Ultimate build 7100 64bit senza visualizzazione: 0.421sec con vis: 6.487sec mi sono inventato MEFISTO MErsenne Factorial Iteraction STring Operations MFI per gli amici ... e sto lavorano sulle iterazioni MFI in blocchi di 16 milioni di interi a gradini di 32 - 64 - 128 - 256 etc etc, cioè per esempio con un iterazione di 32 MFI l'algo estrarrà (1031130 * 32) di numeri primi, sui primi scoperti eseguirò un ulteriore estrapolazione dei "Mersenne", infine sui Mersenne ne calcolo il fattoriale, il fattoriale servirà ad alimentare varie stringhe di testo, (cioè trasformo numeri in testo), con questi blocchi di stringhe che ci faccio ? beh visto che ci sono gli applico un algo di quicksort.....direi che potrebbe bastare, una volta fatto questo gli applico la verifica dei risultati con tabella statica preinserita nel codice in rigoroso DATA . per settimana prossima dovrei riuscire a rilasciare la versione gamma. Quote Link to comment Share on other sites More sharing options...
apix_1024 Posted November 12, 2009 Share Posted November 12, 2009 forse mi sono spiegato male io, anzi, è cosi.... su i primi 16 milioni di numeri interi ci sono 1031130 numeri primi quindi ha calcolato l'estrazione di 1031130 numeri primi da 16 milioni di numeri interi in 420 ms ok ? si avevo visto che il n° di numeri primi era 100k e suffla. ottimo lavoro mi sono inventato MEFISTO MErsenne Factorial Iteraction STring Operations MFI per gli amici ... e sto lavorano sulle iterazioni MFI in blocchi di 16 milioni di interi a gradini di 32 - 64 - 128 - 256 etc etc, cioè per esempio con un iterazione di 32 MFI l'algo estrarrà (1031130 * 32) di numeri primi, sui primi scoperti eseguirò un ulteriore estrapolazione dei "Mersenne", infine sui Mersenne ne calcolo il fattoriale, il fattoriale servirà ad alimentare varie stringhe di testo, (cioè trasformo numeri in testo), con questi blocchi di stringhe che ci faccio ? beh visto che ci sono gli applico un algo di quicksort.....direi che potrebbe bastare, una volta fatto questo gli applico la verifica dei risultati con tabella statica preinserita nel codice in rigoroso DATA . per settimana prossima dovrei riuscire a rilasciare la versione gamma. mi esalto sempre di più quando vedo operazioni matematiche hard :asd: aspetto di gusto!!! Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 12, 2009 Author Share Posted November 12, 2009 Una preview.... MEFISTO non ancora attivo (QUINDI SOLO NUMERI PRIMI) ma siamo già al 100 % notare la memoria IN USO per la gestione della miriade di primi..... Quote Link to comment Share on other sites More sharing options...
apix_1024 Posted November 12, 2009 Share Posted November 12, 2009 :ave: devo torchiare il mio superpippa 2 :asd::ave: Quote Link to comment Share on other sites More sharing options...
dj883u2 Posted November 12, 2009 Share Posted November 12, 2009 Eccomi. Quote Link to comment Share on other sites More sharing options...
Totocellux Posted November 12, 2009 Share Posted November 12, 2009 ..... quindi, hai davvero cominciato ad utilizzare BlitzMax! Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 13, 2009 Author Share Posted November 13, 2009 (edited) ..... quindi, hai davvero cominciato ad utilizzare BlitzMax! http://www.xstreme.it/Per_Toto.zip test per Toto : in che linguaggio sono ? Edited November 13, 2009 by Xstreme Quote Link to comment Share on other sites More sharing options...
Totocellux Posted November 13, 2009 Share Posted November 13, 2009 modulo toto1 Inizializzazione: 00401000 /$ 68 2C000000 PUSH 2C ; /n = 2C (44.) 00401005 |. 68 00000000 PUSH 0 ; |c = 00 0040100A |. 68 A4424000 PUSH toto1.004042A4 ; |s = toto1.004042A4 0040100F |. E8 5C100000 CALL ; memset 00401014 |. 83C4 0C ADD ESP,0C 00401017 |. 68 00000000 PUSH 0 ; /pModule = NULL 0040101C |. E8 55100000 CALL ; GetModuleHandleA 00401021 |. A3 A8424000 MOV DWORD PTR DS:[4042A8],EAX 00401026 |. 68 00000000 PUSH 0 ; /MaximumSize = 0 0040102B |. 68 00100000 PUSH 1000 ; |InitialSize = 1000 (4096.) 00401030 |. 68 00000000 PUSH 0 ; |Flags = 0 00401035 |. E8 42100000 CALL ; HeapCreate 0040103A |. A3 A4424000 MOV DWORD PTR DS:[4042A4],EAX 0040103F |. E8 6C130000 CALL toto1.004023B0 00401044 |. E8 6B120000 CALL toto1.004022B4 00401049 |. 68 03000000 PUSH 3 0040104E |. 68 03000000 PUSH 3 00401053 |. E8 C4120000 CALL toto1.0040231C 00401058 |. 68 15000000 PUSH 15 0040105D |. 68 C8424000 PUSH toto1.004042C8 00401062 |. 68 00000000 PUSH 0 00401067 |. 8B15 C8424000 MOV EDX,DWORD PTR DS:[4042C8] 0040106D |. E8 8E0F0000 CALL toto1.00402000 00401072 |. B8 00200000 MOV EAX,2000 00401077 |. 68 04000000 PUSH 4 0040107C |. E8 9F0F0000 CALL toto1.00402020 00401081 |. 68 32404000 PUSH toto1.00404032 ; ASCII "Toto attendi prego..." 00401086 |. FF15 68404000 CALL DWORD PTR DS:[404068] ; toto1.0040234B 0040108C |. 68 09000000 PUSH 9 00401091 |. 68 09000000 PUSH 9 00401096 |. E8 81120000 CALL toto1.0040231C 0040109B |. 68 1C404000 PUSH toto1.0040401C [.................] Elaborazione: 004010A0 |. FF15 68404000 CALL DWORD PTR DS:[404068] ; toto1.0040234B 004010A6 |. 68 09000000 PUSH 9 004010AB |. 68 09000000 PUSH 9 004010B0 |. E8 67120000 CALL toto1.0040231C 004010B5 |. E8 C80F0000 CALL ; [GetTickCount 004010BA |. A3 B0424000 MOV DWORD PTR DS:[4042B0],EAX 004010BF |. C705 B4424000 0>MOV DWORD PTR DS:[4042B4],1 004010C9 |> B8 50C30000 /MOV EAX,0C350 004010CE |. 3B05 B4424000 |CMP EAX,DWORD PTR DS:[4042B4] 004010D4 |. 0F8C F3000000 |JL toto1.004011CD 004010DA |. C705 B8424000 0>|MOV DWORD PTR DS:[4042B8],0 004010E4 |. C705 BC424000 0>|MOV DWORD PTR DS:[4042BC],0 004010EE |> B8 FE1F0000 |/MOV EAX,1FFE 004010F3 |. 3B05 BC424000 ||CMP EAX,DWORD PTR DS:[4042BC] 004010F9 |. 7C 1F ||JL SHORT toto1.0040111A 004010FB |. 8B1D BC424000 ||MOV EBX,DWORD PTR DS:[4042BC] 00401101 |. 8B2D C8424000 ||MOV EBP,DWORD PTR DS:[4042C8] 00401107 |. C1E3 02 ||SHL EBX,2 0040110A |. C7441D 00 01000>||MOV DWORD PTR SS:[EBP+EBX],1 00401112 |. FF05 BC424000 ||INC DWORD PTR DS:[4042BC] 00401118 |.^EB D4 |JMP SHORT toto1.004010EE 0040111A |> C705 BC424000 0>|MOV DWORD PTR DS:[4042BC],0 00401124 |> B8 FE1F0000 |/MOV EAX,1FFE 00401129 |. 3B05 BC424000 ||CMP EAX,DWORD PTR DS:[4042BC] 0040112F |. 0F8C 8D000000 ||JL toto1.004011C2 00401135 |. 8B1D BC424000 ||MOV EBX,DWORD PTR DS:[4042BC] 0040113B |. 8B2D C8424000 ||MOV EBP,DWORD PTR DS:[4042C8] 00401141 |. C1E3 02 ||SHL EBX,2 00401144 |. 8B5C1D 00 ||MOV EBX,DWORD PTR SS:[EBP+EBX] 00401148 |. 83FB 01 ||CMP EBX,1 0040114B |. 75 6A ||JNZ SHORT toto1.004011B7 0040114D |. 8B1D BC424000 ||MOV EBX,DWORD PTR DS:[4042BC] 00401153 |. 031D BC424000 ||ADD EBX,DWORD PTR DS:[4042BC] 00401159 |. 891D C0424000 ||MOV DWORD PTR DS:[4042C0],EBX 0040115F |. 8305 C0424000 0>||ADD DWORD PTR DS:[4042C0],3 00401166 |. 8B1D BC424000 ||MOV EBX,DWORD PTR DS:[4042BC] 0040116C |. 031D C0424000 ||ADD EBX,DWORD PTR DS:[4042C0] 00401172 |. 891D C4424000 ||MOV DWORD PTR DS:[4042C4],EBX 00401178 |> 8B1D C4424000 ||/MOV EBX,DWORD PTR DS:[4042C4] 0040117E |. 81FB FE1F0000 |||CMP EBX,1FFE 00401184 |. 7F 2B |||JG SHORT toto1.004011B1 00401186 |. 8B1D C4424000 |||MOV EBX,DWORD PTR DS:[4042C4] 0040118C |. 8B2D C8424000 |||MOV EBP,DWORD PTR DS:[4042C8] 00401192 |. C1E3 02 |||SHL EBX,2 00401195 |. C7441D 00 00000>|||MOV DWORD PTR SS:[EBP+EBX],0 0040119D |. 8B1D C4424000 |||MOV EBX,DWORD PTR DS:[4042C4] 004011A3 |. 031D C0424000 |||ADD EBX,DWORD PTR DS:[4042C0] 004011A9 |. 891D C4424000 |||MOV DWORD PTR DS:[4042C4],EBX 004011AF |.^EB C7 ||JMP SHORT toto1.00401178 004011B1 |> FF05 B8424000 ||INC DWORD PTR DS:[4042B8] 004011B7 |> FF05 BC424000 ||INC DWORD PTR DS:[4042BC] 004011BD |.^E9 62FFFFFF |JMP toto1.00401124 004011C2 |> FF05 B4424000 |INC DWORD PTR DS:[4042B4] 004011C8 |.^E9 FCFEFFFF JMP toto1.004010C9 004011CD |> E8 B00E0000 CALL ; [GetTickCount [.................] Visualizzazione: 0040120B |. BA 48404000 MOV EDX,toto1.00404048 ; ASCII " iterazioni in : " 00401210 |. E8 EB110000 CALL toto1.00402400 00401215 |. A1 DC424000 MOV EAX,DWORD PTR DS:[4042DC] 0040121A |. 50 PUSH EAX 0040121B |. 50 PUSH EAX 0040121C |. A1 B0424000 MOV EAX,DWORD PTR DS:[4042B0] 00401221 |. 99 CDQ 00401222 |. 52 PUSH EDX 00401223 |. 50 PUSH EAX 00401224 |. E8 E70F0000 CALL toto1.00402210 00401229 |. 58 POP EAX 0040122A |. BA 0D404000 MOV EDX,toto1.0040400D ; ASCII " millisecondi." 0040122F |. E8 CC110000 CALL toto1.00402400 00401234 |. FF05 DC424000 INC DWORD PTR DS:[4042DC] 0040123A |. 8B15 64404000 MOV EDX,DWORD PTR DS:[404064] 00401240 |. 011424 ADD DWORD PTR SS:[ESP],EDX 00401243 |. FF15 68404000 CALL DWORD PTR DS:[404068] ; toto1.0040234B 00401249 |. 8F05 DC424000 POP DWORD PTR DS:[4042DC] 0040124F |. 68 03000000 PUSH 3 00401254 |. 68 03000000 PUSH 3 00401259 |. E8 BE100000 CALL toto1.0040231C 0040125E |. A1 DC424000 MOV EAX,DWORD PTR DS:[4042DC] 00401263 |. 50 PUSH EAX 00401264 |. 50 PUSH EAX 00401265 |. BA 1E404000 MOV EDX,toto1.0040401E ; ASCII " Primi Calcolati : " 0040126A |. E8 91110000 CALL toto1.00402400 0040126F |. A1 DC424000 MOV EAX,DWORD PTR DS:[4042DC] 00401274 |. 50 PUSH EAX 00401275 |. 50 PUSH EAX 00401276 |. A1 B8424000 MOV EAX,DWORD PTR DS:[4042B8] 0040127B |. 99 CDQ 0040127C |. 52 PUSH EDX 0040127D |. 50 PUSH EAX 0040127E |. E8 8D0F0000 CALL toto1.00402210 00401283 |. 58 POP EAX 00401284 |. FF05 DC424000 INC DWORD PTR DS:[4042DC] 0040128A |. 8B15 64404000 MOV EDX,DWORD PTR DS:[404064] 00401290 |. 011424 ADD DWORD PTR SS:[ESP],EDX 00401293 |. FF15 68404000 CALL DWORD PTR DS:[404068] ; toto1.0040234B 00401299 |. 8F05 DC424000 POP DWORD PTR DS:[4042DC] 0040129F |. 68 70170000 PUSH 1770 ; /Timeout = 6000. ms 004012A4 |. E8 F40F0000 CALL ; Sleep 004012A9 |. 68 00000000 PUSH 0 004012AE |. E8 10000000 CALL toto1.004012C3 004012B3 |. FF35 A4424000 PUSH DWORD PTR DS:[4042A4] ; |/hHeap = NULL 004012B9 |. E8 CA0D0000 CALL ; |HeapDestroy 004012BE . E8 CB0D0000 CALL ; ExitProcess ....... eh monello : purtroppo non ho il tempo adeguato alla situazione Toto2 non funge sulla macchina con cui sto lavorando. Appena torno a casa vedrò di dare una rapida occhiata anche a quello Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 13, 2009 Author Share Posted November 13, 2009 (edited) modulo toto1 ti risparmio tempo uno è scritto in Visual C++ , l'altro è scritto in PureBasic , quello scritto in BlitzMax lo hai gia visto , se vuoi ti mando anche la stessa routine in : Ansi C , Delphi , C Sharp , Fortran , Flat Assembler e Visual Studio, in Java no, perchè mi è antipatico. ps ho compilato la stessa routine nei linguaggi su esposti, se vuoi ti faccio una classifica 1) Visual C++ 2) ............. 3) ............. 4) BlitzMax 5) ............. 6) ............. 7) ............. 8) Fortran Edited November 13, 2009 by Xstreme Quote Link to comment Share on other sites More sharing options...
Totocellux Posted November 13, 2009 Share Posted November 13, 2009 [........] se vuoi ti mando anche la stessa routine in : Ansi C , Delphi , C Sharp , Fortran , Flat Assembler e Visual Studio, in Java no, perchè mi è antipatico. ps ho compilato la stessa routine nei linguaggi su esposti, se vuoi ti faccio una classifica classifica per velocità di esecuzione? Flat Assembler Fortran (90 o 95?) Ansi C Visual Studio C# Delphi Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 13, 2009 Author Share Posted November 13, 2009 (edited) classifica per velocità di esecuzione? Flat Assembler Fortran (90 o 95?) Ansi C Visual Studio C# Delphi Java : portabilità, discretamente veloce ma poco "commerciale" C++ : portabilità prossima allo 0, veloce PureBasic : Tantovale programmare in C++ Visual Basic : la patria dei BUG Flat Assembler : Bello e impossibile C : librerie scadenti :perfido: C# : indissolubile dal Framework .NET BlitzMax : Gui editor Inesistente ma compilatore quasi a livello Assembler :AAAAH: Delphi : carino ma vedi il C PowerBasic : più Basic Che Power Visual .NET: indissolubile dal Framework .NET :uglystupid2: Fortran : ottimo sui banchi di scuola, ma li rimane ? :cheazz: Ansi C : Dinamico, Stabile, ma più macchinoso del C++ Edited November 13, 2009 by Xstreme Quote Link to comment Share on other sites More sharing options...
Totocellux Posted November 13, 2009 Share Posted November 13, 2009 modulo toto1uno è scritto in Visual C++ , l'altro è scritto in PureBasic , beh, che toto1.exe fosse scritto in dialetto C non c'erano dubbi: molte chiamate e riferimenti a funzioni C nel modulo toto1 (ho lasciato il malloppo in ufficio). Ma per scoprire che fosse Visual C++, sarebbe stato molto molto più lungo da averne certezza. toto2.exe (che a qui a casa su Windows 7 64bit funziona, al contrario del pc in ufficio con XP SP3) non lìho ancora trattato. Comunque ho notato che 'sto Power Basic (che sconoscevo) nei calcoli matematici è circa 2-3 volte più veloce del Visual C++ A parte tutto, devo farti davvero i miei complimenti per il grandissimo impegno e la volontà che stai profondendo in questo progetto :clapclap: Quote Link to comment Share on other sites More sharing options...
Xstreme Posted November 14, 2009 Author Share Posted November 14, 2009 (edited) beh, che toto1.exe fosse scritto in dialetto C non c'erano dubbi: molte chiamate e riferimenti a funzioni C nel modulo toto1 (ho lasciato il malloppo in ufficio). Ma per scoprire che fosse Visual C++, sarebbe stato molto molto più lungo da averne certezza. toto2.exe (che a qui a casa su Windows 7 64bit funziona, al contrario del pc in ufficio con XP SP3) non lìho ancora trattato. Comunque ho notato che 'sto Power Basic (che sconoscevo) nei calcoli matematici è circa 2-3 volte più veloce del Visual C++ A parte tutto, devo farti davvero i miei complimenti per il grandissimo impegno e la volontà che stai profondendo in questo progetto :clapclap: mi hai chiesto del ........ 7919 2/ constant maxp : primes ( -- n ) here maxp 1 FILL 1 ( count, including 2 ) maxp 0 DO I here + C@ IF I 2* 3 + ( dup .) DUP I + ( prime current ) begin DUP maxp U o del ..... top = 50 logical*2 flags(top) integer*2 i,j,k,count,iter,prime n = long(362) do 92 iter = 1,10 count=0 i=0 do 10 i = 1,top 10 flags(i) = .true. do 91 i = 1,top if (.not. flags(i)) go to 91 prime = i + i + 3 count = count + 1 k = i + prime if (k .gt. top) go to 91 do 60 j = k, top, prime 60 flags(j) = .false. 91 continue 92 continue write (9,*) count," primes in ",(long(362)-n)/60.0," seconds " pause end molto interessante per le matematiche è il compilatore Haskell primes = sieve [ 2.. ] where sieve (p:x) = p : sieve [ n | n 0 ] Edited November 14, 2009 by Xstreme Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.