Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-11-2006, 14:44   #1
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
C: numero primo

chi mi scrive un semplice algoritmo per vedere se un numero è primo oppure no?
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 14:49   #2
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Il piu famoso e anche semplice è il crivello di eratostene. http://it.wikipedia.org/wiki/Crivello_di_Eratostene
Se ti serve un esempio in qualche linguaggio basta chiedere.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 14:52   #3
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
Il punto è che non mi serve per vedere se una serie di numeri è primi, ma voglio sapere dato n da input, dire se questo è primo. il linguaggio è C.

grAZIE
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 14:59   #4
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Il modo più semplice è controllare che non sia divisibile per nessuno dei numeri dispari da 3 alla radice quadrata del numero che stai controllando.

Non esistono algoritmi efficienti per risolvere questo problema.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 15:03   #5
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
per questa volta mi posteresti direttamente un algoritmo abbastanza buono per fare quello che ho detto?
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 15:12   #6
icecube_HU
Member
 
L'Avatar di icecube_HU
 
Iscritto dal: May 2006
Messaggi: 71
Quote:
Originariamente inviato da ilsensine
Il modo più semplice è controllare che non sia divisibile per nessuno dei numeri dispari da 3 alla radice quadrata del numero che stai controllando.

Non esistono algoritmi efficienti per risolvere questo problema.
Gia' !

Per guadagnare un po' in efficienza, conviene sfruttare il fatto che tutti i numeri primi (tranne 2 e 3) sono della forma: 6*K +/- 1,
calcolando: r = N mod 6
Se r e' diverso da 1 o 5, il numero NON e' primo.
Poi si prosegue come hai indicato...

Ciao !
icecube_HU è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 15:16   #7
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
Vi sto chiedendo per favore di postarmi direttamente la codifica in C.

graZIE
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 15:26   #8
mdr268
Senior Member
 
L'Avatar di mdr268
 
Iscritto dal: Apr 2006
Città: TV-PD
Messaggi: 741
te la saprei fare in pascal, ma non in C..
mdr268 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 15:27   #9
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
Allora me la fai in pascal? poi traduco io. grazie tanto
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 15:28   #10
mdr268
Senior Member
 
L'Avatar di mdr268
 
Iscritto dal: Apr 2006
Città: TV-PD
Messaggi: 741
dammi 10 min..

dopo me lo posti tradotto così mi imparo un po' di C
mdr268 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 15:36   #11
icecube_HU
Member
 
L'Avatar di icecube_HU
 
Iscritto dal: May 2006
Messaggi: 71
Quote:
Originariamente inviato da lucas87
Vi sto chiedendo per favore di postarmi direttamente la codifica in C.
graZIE
Sorry, I don't speak C.

Pero' in VB o VBA e':
Codice:
Function IsPrime(N As Long) As Boolean
   Dim r As Long
   If N <= 0 Then Err.Raise 5, "IsPrime", "Argomento errato !"
   If N <= 3 Then
      IsPrime = True
   Else
      r = N Mod 6
      If r = 1 Or r = 5 Then
         For r = 3 To Sqr(N) Step 2
            If (N Mod r) = 0 Then Exit Function
         Next
         IsPrime = True
      End If
   End If
End Function
Non dovrebbe esserti troppo difficile tradurlo in C...

Ciao !



EDIT: come giustamente fatto notare, 1 NON E' primo !!
Basterebbe una piccola modifica alla routine, ma a questo punto conviene riscriverla col costrutto Select, piu' efficiente:
Codice:
Public Function IsPrime(n As Long) As Boolean
   Dim r As Long
   Select Case n
      Case Is < 0: Err.Raise 5, "IsPrime", "Argomento errato !"
      Case 0, 1: 'niente, non sono primi
      Case 2, 3: IsPrime = True
      Case Else
         r = n Mod 6
         If r = 1 Or r = 5 Then
            For r = 3 To Sqr(n) Step 2
               If (n Mod r) = 0 Then Exit Function
            Next
            IsPrime = True
         End If
   End Select
End Function

Ultima modifica di icecube_HU : 23-11-2006 alle 08:45.
icecube_HU è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 15:40   #12
mdr268
Senior Member
 
L'Avatar di mdr268
 
Iscritto dal: Apr 2006
Città: TV-PD
Messaggi: 741
avevo quasi finito in pascal, ma visto che ti è arrivata la soluzione in vb lascio quella che è fatta meglio ^^
mdr268 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 16:42   #13
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
Grazie a tutti.
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 16:52   #14
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
una sola cosa. cosa vuol dire step 2, che incrementa di 2 il contatore?
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 17:59   #15
icecube_HU
Member
 
L'Avatar di icecube_HU
 
Iscritto dal: May 2006
Messaggi: 71
Quote:
Originariamente inviato da lucas87
una sola cosa. cosa vuol dire step 2, che incrementa di 2 il contatore?
Si' !
icecube_HU è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2006, 20:09   #16
mdr268
Senior Member
 
L'Avatar di mdr268
 
Iscritto dal: Apr 2006
Città: TV-PD
Messaggi: 741
potresti incollare la tua traduzione in C? sono curioso di sapere come hai fatto a tradurre l'incremento di 2..

un altra cosa, cosa vuol dire err raise?
mdr268 è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2006, 08:39   #17
icecube_HU
Member
 
L'Avatar di icecube_HU
 
Iscritto dal: May 2006
Messaggi: 71
Quote:
Originariamente inviato da mdr268
potresti incollare la tua traduzione in C? sono curioso di sapere come hai fatto a tradurre l'incremento di 2..

un altra cosa, cosa vuol dire err raise?
Genera un errore "Invalid argument" se si calcola la funzione per valori negativi o uguali a zero, per i quali non e' definita.

Lo stesso che avviene, ad esempio, per la funzione standard Log().
icecube_HU è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2006, 11:06   #18
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da mdr268
potresti incollare la tua traduzione in C? sono curioso di sapere come hai fatto a tradurre l'incremento di 2..
i+=2 invece di i++ nel for...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2006, 11:22   #19
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16215
Quote:
Originariamente inviato da lucas87
voglio sapere dato n da input, dire se questo è primo
Vuoi sapere tu, o ti ha dato l'esercizio il prof?
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2006, 13:57   #20
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
int is_prime(int a){

long r;
if (a==0){
return 0;
}
if (a<=3){
return 1;
}
else {
r=a % 6;
if ((r==1) || (r==5)){
for (r=3;r<=sqrt(a);r=r+2){
if ((a % r) == 0){
return 1;
}
else {
return 0;
}
}

}
}
}


ritorna 1 se è primo, zero se non lo è.
lucas87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Torna il super doppio sconto sulle e-bik...
Offerte Amazon componenti PC: RTX 5060 T...
Crucial Pro DDR5 da 32GB a 389,99€: perc...
Fable 5, il modello più potente d...
PC all-in-one Lenovo super elegante, per...
Lo Smart TV più venduto su Amazon...
Periferiche gaming in offerta su Amazon:...
L'IA non è una bolla, ma pu&ograv...
Il cinema in salotto: oggi TV Xiaomi QLE...
Passa a ho. Mobile, fino a fine agosto c...
Ai Giochi di Pechino i robot prendono fu...
Arianespace Ariane 6: lanciato il satell...
Starship: la nave Forte ha caricato Ship...
ROCm 10 punta sull'AI agentica: AMD auto...
Meta cambia la privacy degli AI Glasses:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:15.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v