Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico
Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico
Motorola propone in fascia media il nuovo Moto G77 5G, uno smartphone che punta sul display AMOLED da 1.5K a 120Hz, e sulla fotocamera da 108 MP con stabilizzazione ottica per affrontare la fascia media. Il tutto insieme a una batteria da 5200mAh in soli 7,3 millimetri di spessore, con una scocca certificata con standard militari
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI ha appena ufficializzato la serie Lito, la sua nuova gamma di droni entry-level destinata a chi si avvicina per la prima volta alla fotografia aerea. Al centro dell'annuncio ci sono due modelli ben distinti per fascia di prezzo e specifiche tecniche: DJI Lito 1 e DJI Lito X1. Entrambi si collocano sotto la soglia regolamentare dei 249 grammi, che permette di volare con requisiti burocratici più semplici rispetto ai droni più pesanti.
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi
Siamo stati a Londra per la premiazione dei Sony World Photography Awards 2026, l'evento a tema fotografia più prestigioso. Fra sorprese e novità, ne approfittiamo per fare il punto sulla fotografia contemporanea, in cui la didascalia è sempre più necessaria a cogliere il senso della quasi totalità degli scatti.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-06-2005, 17:04   #1
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
[C] Problemi sui numeri primi

Ciao a tutti! Spero di non scocciarvi troppo però sto cercando di imparare.

Allora il testo mi dice costruire una funzione int is_prime(int n) che restituisce 1 se il numero n è primo 0 altrimenti. Fino a qui ok. Ma lui mi da un suggerimento dicendomi che se ke n sono interi positivi, k divide n se e solo se n%k vale zero. Quello che non capisco è che se la funzione riceve solamente n come parametro che valore dovrebbe assumere k? E da dove se lo va a pigliare sto k?

Poi di problema ce n'è un altro che dice di scrivere una funzione che trovi tutti i fattori di una dato numero. E qui proprio sono a corto di idee. Come faccio a dirglielo?

Grazie ancora per il vostro prezioso aiuto.
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2005, 17:33   #2
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da Manugal
il testo mi dice costruire una funzione int is_prime(int n) che restituisce 1 se il numero n è primo 0 altrimenti.
Un esercizio classico.
Quote:
lui mi da un suggerimento dicendomi che se ke n sono interi positivi, k divide n se e solo se n%k vale zero. Quello che non capisco è che se la funzione riceve solamente n come parametro che valore dovrebbe assumere k? E da dove se lo va a pigliare sto k?
Altro suggerimento: usa i cicli e le variabili locali.
Quote:
Poi di problema ce n'è un altro che dice di scrivere una funzione che trovi tutti i fattori di una dato numero. E qui proprio sono a corto di idee. Come faccio a dirglielo?
Usi un ciclo su una variabile locale, come nell'esercizio precedente; e quando trovi divisibilità, effettui una stampa.
(Se ho capito bene, è ancora prestino per le liste.)

P.S.: Su che libro stai studiando?
__________________
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 25-06-2005, 17:36   #3
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Il testo è: Al Kelley - Ira Pohl - Didattica e Programmazione C - Addison/Wesley Pearson

Cmq non ho ben capito "usa i cicli e le variabili locali". k da dove esce fuori? Se non ha un valore prefissato (o che cmq gli passo io da un'altra funzione) come fa un numero fissato n e essere divisibile per un ipotetico numero k. Lui non sa che valore ha k quindi come fa a stabilire se è primo no? Spero di essermi spiegato.

Ultima modifica di Manugal : 25-06-2005 alle 17:41.
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2005, 18:35   #4
n0ps
Junior Member
 
Iscritto dal: Jun 2005
Messaggi: 13
Codice:
int main ()
{
	int numero;
	int div, i;
	printf ("Inserisci il numero\n");
	scanf ( "%d", &numero );
	div = numero;
	
	for ( i = 2; div > 1; ) {
		if (! ( div % i ) ) {
			printf ( "%d --> %d e' divisibile per %d e resta %d\n",
				 numero, div, i, div/i );
			div /= i;
			continue;
		}
		i ++;
        }
	
	return 0;
}
Con pochissime modifiche svolge entrambi gli esercizi che hai richiesto.
n0ps è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2005, 19:12   #5
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
non mi ricordo bene ma se non ricordo male un mio compagno aveva trovato che bastava andare fino a log del numero o forse era la metà

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2005, 19:57   #6
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da Manugal
Il testo è: Al Kelley - Ira Pohl - Didattica e Programmazione C - Addison/Wesley Pearson
Mi sembra di ricordare che sia un buon testo.
Quote:
non ho ben capito "usa i cicli e le variabili locali". k da dove esce fuori? Se non ha un valore prefissato (o che cmq gli passo io da un'altra funzione)
Oppure, che gli assegni tu dall'interno della funzione.
E qui mi fermo, perché adesso è ora che ti impratichisca un po' tu
__________________
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 26-06-2005, 09:24   #7
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da Fenomeno85
non mi ricordo bene ma se non ricordo male un mio compagno aveva trovato che bastava andare fino a log del numero o forse era la metà
Era la radice quadrata: se un numero non è primo, allora ha un fattore primo che non supera la sua radice quadrata.
Meglio di così non puoi fare, i controesempi sono i quadrati dei primi.
ESERCIZIO: dimostrare, che è facile
__________________
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 26-06-2005, 09:47   #8
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Forse ci sono.

Potrei fare un ciclo for con k che va da 2 a n (n escluso) e vedere se per ogni k n è divisibile per quel k. Se non lo è è primo. E' giusto?
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2005, 09:59   #9
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da Ziosilvio
Era la radice quadrata: se un numero non è primo, allora ha un fattore primo che non supera la sua radice quadrata.
Meglio di così non puoi fare, i controesempi sono i quadrati dei primi.
ESERCIZIO: dimostrare, che è facile
Se puo interessare c'è gia la mia dimostrazione nel Thread di qualche tempo fa sul thread del Crivello di Eratostene.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2005, 20:11   #10
n0ps
Junior Member
 
Iscritto dal: Jun 2005
Messaggi: 13
Quote:
Originariamente inviato da Manugal
Forse ci sono.

Potrei fare un ciclo for con k che va da 2 a n (n escluso) e vedere se per ogni k n è divisibile per quel k. Se non lo è è primo. E' giusto?
Si ma guarda che è quello che fa il codice che ti ho postato prima
n0ps è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2005, 08:17   #11
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 Manugal
Forse ci sono.

Potrei fare un ciclo for con k che va da 2 a n (n escluso) e vedere se per ogni k n è divisibile per quel k. Se non lo è è primo. E' giusto?
Vai fino a sqrt(n)...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2005, 09:07   #12
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da cionci
Vai fino a sqrt(n)...
E mi raccomando: non c'è bisogno di includere math.h e chiamare sqrt, si può fare tutto con l'aritmetica intera...
__________________
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 27-06-2005, 09:14   #13
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
Giusto...basta fare qualche operazione sul contatore...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2005, 10:10   #14
Maephisto
Member
 
L'Avatar di Maephisto
 
Iscritto dal: Mar 2004
Città: Milano
Messaggi: 107
già magari riesci anche a trovare i fattori di un numero in tempo costante o al più polinomiale (chi ha orecchie per intendere... )


ah chiaramente invece per trovare se un numero è primo o meno... quello è facile... da qualche anno
__________________
Non c'è la morte... c'è la Forza...

Ultima modifica di Maephisto : 27-06-2005 alle 10:13.
Maephisto è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2005, 17:43   #15
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Quote:
int main ()
{
int numero;
int div, i;
printf ("Inserisci il numero\n");
scanf ( "%d", &numero );
div = numero;

for ( i = 2; div > 1; ) {
if (! ( div % i ) ) {
printf ( "%d --> %d e' divisibile per %d e resta %d\n",
numero, div, i, div/i );
div /= i;
continue;
}
i ++;
}

return 0;
}
Io ho fatto così:

for (k=2; k<n; k++)
if(k%n)
return 0;
else
return 1;

Non mi sembra che sia proprio uguale al tuo (anche perché il tuo non l'ho proprio capito ). Ma perché complicarsi sempre la vita? (Non è per qualcosa, è che sono agli inizi e non riesco a capire questo codice così "sofisticato"). Grazie cmq
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2005, 19:50   #16
FedeX_65246X
Member
 
Iscritto dal: Feb 2005
Città: Milano
Messaggi: 35
Quote:
Originariamente inviato da Manugal
Io ho fatto così:

for (k=2; k<n; k++)
if(k%n)
return 0;
else
return 1;
Ti consiglio di ricominciare da zero con il C, prenditi tempo e studia la soluzione proposta più sopra.
Inoltre non pretendere di risolvere un problema senza aver ben chiaro di cosa si tratta, i numeri dispari non sono i numeri primi.
Buon lavoro, ci sono passato anch'io
__________________
Res ipsa loquitur
FedeX_65246X è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2005, 19:57   #17
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Scusa però ti dico che il mio funziona perché se metto 9 come valore (che è dispari ma non è primo) la funzione mi restituisce correttamente 0. Qundi che ha di sbagliato il mio ciclo?
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2005, 21:46   #18
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Cmq sto provando lo stesso a vedere quel codice scritto gentilmente da n0ps:

Codice:
int main ()
{
	int numero;
	int div, i;
	printf ("Inserisci il numero\n");
	scanf ( "%d", &numero );
	div = numero;
	
	for ( i = 2; div > 1; ) {
		if (! ( div % i ) ) {
			printf ( "%d --> %d e' divisibile per %d e resta %d\n",
				 numero, div, i, div/i );
			div /= i;
			continue;
		}
		i ++;
        }
	
	return 0;
}
Non capisco bene la if e il div/=i. Cioè la if è come se dicesse if div % i !=0 giusto? Se così fosse come fa il numero a essere divisibile per i (dato che il resto è diverso da 0)? Poi non capisco dopo perché fa div/=i. Grazie a chi mi darà delucidazioni
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2005, 08:32   #19
Molz
Member
 
Iscritto dal: May 2003
Messaggi: 119
La if significa proprio il contrario di quello che dici tu

se il numero è divisibile per i
div % i fa 0

il ! è l'operatore booleano not che applicato a 1 espressione booleana la fa diventare false se è vera e vera se è falsa.
Siccome il valore 0 corrisponde a un espressione booleana falsa allora !0 = vero

quindi if (! ( div % i ) ) è lo stesso che scrivere if ((div % i)==0)

div /=i è lo stesso che scrivere div = div /i

Quel ciclo trova tutti i fattori primi di un numero, se non facesse quella divisione (a parte che il ciclio non terminerebbe mai) risulterebbe che 12 è divisibile per 2, poi per 2, poi per 3, poi per 4, poi per 6 e poi per 12.
Quando l'output giusto è 2 2 3
Molz è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2005, 09:36   #20
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Ok grazie. Se non avesse messo il continue che sarebbe successo?
Manugal è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico Recensione Moto G77: display AMOLED e buona auto...
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla DJI Lito 1 e Lito X1 recensione: i nuovi droni p...
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi Sony World Photography Awards 2026: i premiati, ...
Una settimana con Hyundai Ioniq 5 N-Line: diverte e convince Una settimana con Hyundai Ioniq 5 N-Line: divert...
Recensione OPPO Find X9 Ultra: è lui il cameraphone definitivo Recensione OPPO Find X9 Ultra: è lui il c...
Panasonic presenta il nuovo obiettivo Lu...
Panasonic Lumix S9 Black Titanium Editio...
Thales Alenia Space risponde alle critic...
Intel aggiorna i driver Arc Pro: fino al...
La Cina blocca l'acquisizione di Manus d...
Le batterie al sodio di CATL raggiungono...
Samsung rischia 36 giorni di stop totale...
Huawei annuncia l'arrivo della serie Wat...
L'auto elettrica più veloce del m...
ASUS ha rilasciato il cavo salva-GPU: 50...
TeamViewer Intelligent Agent si rinnova ...
Il conflitto in Iran fa salire i prezzi ...
B05 di Leapmotor in Italia: hatchback el...
Addio app? OpenAI prepara lo smartphone ...
MacBook Air 13" con chip M5 in offerta s...
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: 01:21.


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