检查一个数字是否包含一对都是质数的组合

标签 c recursion primes

我正在尝试创建一个 bool 递归函数,它只接受 1 个参数并且不充当另一个函数的包装器,它检查一个数字是否包含一对都是素数的组合。

例如,8379 的可能组合是:

8 379  
83 79  
837 9

我已经设法使用包装器函数创建函数,但如果没有包装器,我似乎无法做到这一点。

我目前拥有的是:

func(num):  
num is prime -> return true
else -> call func(num / 10, num % 10).

fun(num1, num2):  
num1 and num2 are primes -> return true  
num1 < 10 -> return false  
return func(num1 / 10, concat(num1 % 10, num2))

最佳答案

假设您定义了一个 isPrime 函数,那么您可以像这样定义您的函数:

bool f(int x) {
    int right = x % 10, left = x / 10, iter = 1;

    while (left) {
        if (isPrime(left) && isPrime(right)) return true;

        right = (pow(10, iter++) * (left % 10)) + right;
        left = left / 10;
    }

    return false;
}

关于检查一个数字是否包含一对都是质数的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10558759/

相关文章:

c - 启用/禁用功能 v.s. 的基本原理改变状态?

我可以避免在数组的连续子集中写入相同值的循环吗?

python - 我如何检查 2 个多项式是否同余模 (h(x), n)?

security - 计算机是否部署了预先计算的素数列表

c - C 中的链表实现 - 段错误

c - 短 C 代码 : Confused strlen() function

java递归查找字符串中字符的最后一个索引

python - 我不明白关于递归的那部分代码(python)

java - finally block 中的堆栈溢出错误处理

python - 尝试编写一个程序,列出在 Python 中数字相加为素数的数字。我怎样才能修复溢出错误?