What is the intention of the program below?
```
def p1(a, b):
    if b != 0:
        return p1(b, a % b)
    else:
        return a
``` There should be exactly 4 paragraphs separated by the markdown divider: ***.
user