"""
https://exercism.io/tracks/python/exercises/raindrops
converts a number into a string that contains raindrop sounds corresponding to certain potential factors. 
A factor is a number that evenly divides into another number, leaving no remainder. 
The simplest way to test if a one number is a factor of another is to use the modulo operation.

The rules of raindrops are that if a given number:
    - has 3 as a factor, add 'Pling' to the result.
    - has 5 as a factor, add 'Plang' to the result.
    - has 7 as a factor, add 'Plong' to the result.
does not have any of 3, 5, or 7 as a factor, the result should be the digits of the number.
Examples
    - 28 has 7 as a factor, but not 3 or 5, so the result would be "Plong".
    - 30 has both 3 and 5 as factors, but not 7, so the result would be "PlingPlang".
    - 34 is not factored by 3, 5, or 7, so the result would be "34".
"""


def raindrops(nb):
    "converts a number into a string that contains raindrop sounds corresponding to certain potential factors."
    result = ""
    if nb % 3 == 0:
        result += "Pling "
    if nb % 5 == 0:
        result += "Plang "
    if nb % 7 == 0:
        result += "Plong "
    return result


def main():
    while(True):
        user_response = input("Type an integer:\n>>> ")
        try:
            nb = int(user_response)
            break
        except:
            print("You haven't typed an integer, try again...\n")
    print(raindrops(nb))


if __name__ == "__main__":
    main()