Если вы хотите показать второй по величине фактор, последний фактор, кроме самого number
, является самым большим.
Игнорируя эффективность, этот код будет работать:
var number = 15
var theSecondLargestFactor: Int = 1
for i in 2..<number { //Ignore the largest factor `number` itself
if number % i == 0 {
//Replace `theSecondLargestFactor` when a larger factor is found
theSecondLargestFactor = i
}
}
print(theSecondLargestFactor) //->5
Thisкод выводит 50
, когда number
равно 100
, поскольку 50
является вторым по величине фактором 100
.Если это не ожидаемый результат, то вы не хотите второй по величине фактор .
Если вам нужен наибольший простой коэффициент, снова игнорируйте эффективность:
var number = 100
var theLargestPrimeFactor: Int = 1
for i in 2...number { //The `number` itself may be the largest prime factor, so include it
while number % i == 0 {
number /= i
theLargestPrimeFactor = i
}
}
print(theLargestPrimeFactor) //->5
Это похоже на ваш код.