You're right, it would be more appropriate to use a loop that includes the step of asking the user for a number, especially if you want the user to be able to enter multiple numbers without having to run the script again. Here's an example of how you could write the script to achieve that:
``` 
while True:
    try:
        N = int(input("Enter a number: "))
        break
    except ValueError:
        print("Invalid input. Please enter a number.")

for i in range(1, N+1):
    if i % 3 == 0 and i % 5 == 0:
        print("FizzBuzz")
    elif i % 3 == 0:
        print("Fizz")
    elif i % 5 == 0:
        print("Buzz")
    else:
        print(i)
``` 
This script uses a while loop to repeatedly ask the user for a number until a valid input is given. Then, a for loop is used to iterate through the numbers from 1 to N, and the appropriate message is printed for each number based on whether it is divisible by 3, 5, or both.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence