def _eval_is_prime(self):
        """
        If product is a positive integer, multiplication
        will never result in a prime number.
        """
        if self.is_number:
            """
            If input is a number that is not completely simplified.
            e.g. Mul(sqrt(3), sqrt(3), evaluate=False)
            So we manually evaluate it and return whether that is prime or not.
            """
            # Note: `doit()` was not used due to test failing (Infinite Recursion)
            r = S.One
            for arg in self.args:
                r *= arg
            return r.is_prime

        if self.is_integer and self.is_positive:
            """
            Here we count the number of arguments that have a minimum value
            greater than two.
            If there are more than one of such a symbol then the result is not prime.
            Else, the result cannot be determined.
            """
            number_of_args = 0 # count of symbols with minimum value greater than one
            for arg in self.args:
                if (arg-1).is_positive:
                    number_of_args += 1

            if number_of_args > 1:
                return False
dataset/ETHPy150Open sympy/sympy/sympy/core/mul.py/Mul._eval_is_prime/original