/Anonimizzato18053Utente anonimizzato13 ago 2019, 17:55Buongiorno a tutti, Sto tentando di scrivere un programmino per il calcolo dei numeri primi ma l'operatore resto della divisione fra interi non accetta parametri long come argomenti. Esiste il modo di superare il problema? Secondo voi naturalmente. Ciao a tutti e grazie: Luca
andbinSuper FamosoIscritto daott, 2013Messaggi627913 ago 2019, 19:01Certo che si può usare long. Hai studiato la binary numeric promotion ?
/Anonimizzato18053Utente anonimizzato13 ago 2019, 20:54No, solo promotion e demotion da int a long ecc. e viceversa.
/Anonimizzato18053Utente anonimizzato13 ago 2019, 21:59Dunque: ho letto velocemente l'articolo del sito della SUN sulla binary arithmetic promotion e il richiamo alle operazioni moltiplicative, tra cui il modulo. Però, a parte il chiarimento sui segni dei risultati e i risultati dell'applicazione dell'operazione "modulo" a dei double, non sono riuscito a capire come possa permettere di passare degli argomenti long a tale operatore. Il mio inglese, chiaramente, non è all'altezza di un compito così arduo.
andbinSuper FamosoIscritto daott, 2013Messaggi627914 ago 2019, 01:55Un long % un long dà un long. Un long % un int dà un long. Un int % un long dà un long. Un long % un short dà un long. ecc.. (questa è la binary numeric promotion, se uno dei due è long e l'altro più piccolo, quest'ultimo viene portato a long per fare l'operazione) Quindi quale sarebbe il dubbio? Assegnare poi a un int? Allora serve un cast ...
/Anonimizzato18053Utente anonimizzato14 ago 2019, 11:18Ah, allora era già chiaro, però: while(NN % Serie[t] != 0) t++; NetBeans, quando tento di scrivere questo, con la variabile "long NN;" e"long t;" mi indica: "incompatible types: possible lossy convertion from long to int". Mah!
andbinSuper FamosoIscritto daott, 2013Messaggi627914 ago 2019, 12:12L'indice da usare in un array deve essere int (o convertibile implicitamente a int oppure convertibile esplicitamente con cast a int). Non può essere un long. Serie[t] allora t DEVE essere un int. Tutto questo non c'entra nulla con il %
/Anonimizzato18053Utente anonimizzato14 ago 2019, 13:49Grazie mille. Per arrivarci da solo ci avrei spese dei giorni.