|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2008
Città: Trento
Messaggi: 304
|
[JAVA] Stampare i numeri primi di fibonacci fino a mille.
Chiedo aiuto
Sto facendo un corso di Java, sono alle prime armi, e non riesco a risolvere questo piccolo problema. Devo trovare tutti i numeri primi della serie di Fibonacci fino a 1000. Elimino tutti i numeri pari, ma poi non riesco ad eliminare i numeri dispari che mi danno resto zero @SuppressWarnings("empty-statement") public static void main(String[] args) { int first, second , next, check, i; first = 1; // Start from 1 and not 0 because the first prime number is 2 second = 1; check = 2; System.out.println("I numeri primi di fibonacci fino a mille sono \n"); for (i=3; i<1000; i=i+2) { } for(next=2; next<900; next++){ /* Limit at 900 because for logic the sum of the two previous numbers * is over 1000. If I set the limit at 1000 the last result will be more than 1000. */ next = first+second; first = second; second = next; if (next<=check){ next=check; System.out.println("" +next); } if ((next%check)!=0){ if ((next%i)!=0){ System.out.println("" +next); } } else { } } // TODO code application logic here } } |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2005
Messaggi: 737
|
devi fare il check con tutti i numeri primi minori di sqrt(limit)
una cosa di questo tipo: Codice:
boolean isprime;
int[] prime = [2,3,5,7,11,13,17,19,23,29,31];
isprime = true;
foreach (int element:prime) {
isprime = (next%element != 0)
}
if isprime {system.out.println(""+next)}
__________________
O.S.: WIN 10 64-bit CPU: INTEL I5 12400F RAM: 16 GB Corsair Vengeance LPX 3200 Mhz VGA: MSI ARMOR RX570 4GB OC MOBO: ASROCK B660M PRO RS HDD: Seagate 1TB SDD: CRUCIAL MX500 500GB ALI: BE QUIET PURE POWER CM 11 600W Ultima modifica di DoctorT : 30-09-2013 alle 08:51. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jun 2008
Città: Trento
Messaggi: 304
|
Non ho capito molto bene, purtroppo sono proprio alle prime armi
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:41.




















