1
resposta

Gostaria de saber se minha forma de pegar os números primos pode causar algum tipo de problema, ps eu uso print pra me trazer no console já que não possuo mac e não aparece no online swift playground os valores na lateral direita,

/ Desafios // Desafio 1 // Escreva uma função que receba um parâmetro do tipo Int e verifique se esse número é primo ou não. O retorno dessa função pode ser um booleano, representando true se for primo ou false se não for primo. func numeroprimo (_ numero: Int) -> Bool { return numero % numero == 0 && numero % 1 == 0 }

var resposta = numeroprimo (1) print (resposta)

// Desafio 2 // Crie uma função que receba um parâmetro que representa o nome de uma pessoa. Esse parâmetro é um opcional, ou seja, ele pode conter um valor ou ser nulo. Faça o tratamento correto dessa opcional: Caso seja nulo, exiba no console “Nome não especificado”; Caso contenha algum valor, exiba no console esse valor. func nomes (_ nome: String?) { // Define função com parâmetro opcional guard let nome = nome // Assegura desembrulhamento else { // Se Nil retorna que nome não é especificado print ("Nome não especificado") return } print (nome) // Printa o que foi digitado caso não seja Nil }

nomes ("Patrick C Zanesco") // Chama função

// Desafio 3 /* Imagine que você foi ao restaurante com um quantidade “n” de amigos e gastaram ao total um valor x. Faça um programa que contenha uma função que calcule quanto cada pessoa deva pagar. A função deve receber dois parâmetros: o valor total da conta e o número total de pessoas que irão dividir a conta; Não se esqueça dos 10% do garçom! Faça o cálculo em cima do valor total; Retorne quanto cada pessoa deve pagar e exiba esse valor no console, fora da função. Exemplo: a conta total deu R$120,00 e foram 4 pessoas no total. Calculando 10% em cima de R$120,00, o valor final ficará R$132,00. Dividindo esse valor por 4, cada pessoa deve pagar um total de R$33,00.*/ func conta (numerodeamigos: Double,contatotal: Double) -> Double { var total: Double = contatotal * 1.1 / numerodeamigos return total }

var contadividida = conta (numerodeamigos: 4,contatotal:120)

print (contadividida)

1 resposta

Oii Patrick, tudo bem?

Vamos dar uma olhada na sua função de verificar números primos. A função que você escreveu para verificar se um número é primo ou não precisa de alguns ajustes. Atualmente, ela retorna true para qualquer número, pois você está verificando se o número é divisível por si mesmo e por 1, o que é verdade para todos os números. No entanto, um número primo é aquele que tem exatamente dois divisores distintos: 1 e ele mesmo.

Aqui está uma sugestão de como você pode modificar sua função para verificar corretamente se um número é primo:

func numeroPrimo(_ numero: Int) -> Bool {
    if numero <= 1 {
        return false // Números menores ou iguais a 1 não são primos
    }
    for i in 2..<numero {
        if numero % i == 0 {
            return false // Se encontrar algum divisor além de 1 e ele mesmo, não é primo
        }
    }
    return true // Se não encontrar nenhum divisor, é primo
}

var resposta = numeroPrimo(1)
print(resposta) // Deve imprimir false, pois 1 não é primo

A função numeroPrimo verifica se há algum divisor do número entre 2 e o próprio número (sem incluí-lo). Se encontrar algum divisor, retorna false. Se não encontrar nenhum divisor (além de 1 e o próprio número), retorna true.

Quanto ao uso do print para visualizar os resultados, isso é uma prática comum quando se está trabalhando em ambientes onde não há uma interface gráfica disponível para depuração, como pode ser o caso de playgrounds online de Swift. Portanto, usar print para verificar os resultados é totalmente aceitável.

Um abraço e bons estudos.