Я быстро изучаю, я написал две функции и попробовал их самостоятельно, они обе работают хорошо. Однако, когда я пытаюсь вызвать одну функцию внутри другой, я не могу получить желаемый результат, который ищу.
Задача состоит в том, чтобы одна функция печатала простые числа , а другая - для вычисления и проверки, является ли число простым. Я должен вызвать проверку, является ли число простым из функции печати простых чисел .
ниже - мой код:
Эта функция вычисляетявляется ли X: Int простым числом. Он установлен на логическое значение, потому что я должен печатать «true» или «false» в функции под ним.
func isPrime(_ x: Int) -> Bool {
if(x%2 == 0 || x%3 == 0){
if(x == 2 || x == 3){
return(true)
}
return(false)
}
else{
//if the number is less than or equal to 1, we'll say it's not prime
if(x <= 1){
return(false)
}
}
return true
}
Эта часть вычисляет печать простого числа от 1 до n.
func PrintPrimes(upTo n: Int) {
for x in 1...n {
var count = 0
for num in 1..<x {
isPrime(x)
count += 1
}
if count <= 1 {
print(isPrime(x))
}
}
}
Эта часть выполняется только дважды, и я не совсем уверен, почему. Я не знаю, так ли это, потому что я не называю это правильно, или мне придется изменить некоторые вычисления.
Вся помощь приветствуется
РЕДАКТИРОВАТЬ:
Вот оригинальный printPrimes () , прежде чем я решил вызвать isPrime вфункция. Эта функция вычисляет только простые числа и печатает их до n.
func printPrimes(upTo n: Int) {
for x in 1...n {
var count = 0
for num in 1..<x {
if x % num == 0 {
count += 1
}
}
if count <= 1 {
print(x)
}
}
}