1cdef extern from *:
2    int new(int new)
3
4def new(x):
5    """
6    >>> new(3)
7    3
8    """
9    cdef int new = x
10    return new
11
12def x(new):
13    """
14    >>> x(10)
15    110
16    >>> x(1)
17    1
18    """
19    if new*new != new:
20        return new + new**2
21    return new
22
23class A:
24    def new(self, n):
25        """
26        >>> a = A()
27        >>> a.new(3)
28        6
29        >>> a.new(5)
30        120
31        """
32        if n <= 1:
33            return 1
34        else:
35            return n * self.new(n-1)
36