Ho un ciclo for che controlla se un numero è un fattore di un numero, quindi controlla se quel fattore è primo, e quindi lo aggiunge a un array. A seconda del numero originale, verrà visualizzato un messaggio di errorePerché il mio loop Swift non funziona con errore "Non è possibile creare un intervallo con end <start"?
fatal error: Can't form range with end < start
Questo succede quasi ogni volta, ma per alcuni numeri funziona correttamente. Gli unici numeri che ho trovato a lavorare con esso sono 9, 15, e 25.
Ecco il codice:
let num = 16 // or any Int
var primes = [Int]()
for i in 2...(num/2) {
if ((num % i) == 0) {
var isPrimeFactor = true
for l in 2...i-1 {
if ((i%l) == 0) {
isPrimeFactor = false;
}//end if
}//end for
if (isPrimeFactor == true) {
primes.append(i)
}//end if
}//end if
}//end for
Ma come mai funziona con alcuni numeri e non altre? – lagoon
questi tre numeri sono dispari quindi la condizione 'num% i' è falsa. – chris
Quindi come risolverei questo? Se lo avvio a 1 allora non aggiunge nulla a "primes" – lagoon