Exemplo: For e Range
Vamos fazer um programa, usando "for", que receba 2 inteiros positivos n e i, e imprima todos os números que sejam múltiplos de i e menores do que n.
Primeiramente, vamos imaginar como esse programa vai funcionar. Para isso, vamos relembrar o funcionamento do for com range. Quando digitamos:
for variavel in range (maximo)
Fazemos um laço que atribui o valor 0 para variavel na primeira iteração, o valor 1 na segunda iteração, o valor
Então a ideia é fazer um for que vá de 0 até n, checando, de número a número, quais são os múltiplos de i. Caso sejam múltiplos, imprimimos os números. Caso contrário, não fazemos nada.
Vamos iniciar o programa definindo a main():
def main():
A primeira coisa que o programa deve fazer é receber 2 inputs do usuário. Um deles será salvo na variável n e o outro será salvo na variável i (por meio do input). Note que ambos os números serão inteiros, portanto podemos convertê-los diretamente para variáveis do tipo int:
n = int(input("Digite o valor de n:")) i = int(input("Digite o valor de i:")) Agora, chegamos ao laço. Como precisamos checar se todos os números naturais desde 0 até n−1 são múltiplos de i, vamos criar um for que varie desde 0 até n e que aumente de 1 em 1 unidade.
Este for fará que uma variável assuma todos os valores acima mencionados. Vamos chamar esta variável de k.
Note que, como queremos iniciar o laço com k valendo 0 e aumentar este valor de 1 em 1 unidade, basta criar um range contendo o número em relação ao qual k será sempre menor (não precisamos especificar condições de início e de incremento). Portanto:
for k in range(n):
Agora estamos dentro do loop e precisamos checar se cada valor que k está assumindo é múltiplo de i.
Para fazer isso, precisamos simplesmente checar se o resto da divisão de k por i vale 0. Se valer, ele será múltiplo e precisará ser impresso. Se não valer, não precisaremos fazer nada. Portanto, vamos usar um if para realizar esta checagem. O resto é calculado pelo operador %:
if k%i == 0:
Se este for o caso, precisaremos imprimir o valor que está em k, portanto:
print (k)
Como não teremos que fazer nada caso o número armazenado em k não seja múltiplo de i, precisamos somente deixar que o laço realize todo o trabalho. Portanto, o programa completo é:
def main(): n = int(input("Digite o valor de n:")) i = int(input("Digite o valor de i:")) for k in range(n): if k%i == 0: print (k)