📜  如何在 C 中使用循环查找亚当数 (1)

📅  最后修改于: 2023-12-03 15:24:07.535000             🧑  作者: Mango

如何在 C 中使用循环查找亚当数

什么是亚当数

在数学中,如果一个素数p和其相邻的下一个素数p'满足p' - p = 2,则它们被称为孪生素数。而如果我们假设第一个孪生素数对为(3,5),即3和5同时是素数并且它们之间的差为2,则这个假设被称为孪生素数对亚瑟·克拉克·亚当斯(Twin Prime Conjecture by Arthur C. Adams)发明的。

查找亚当数

要在C语言中查找亚当数,我们可以使用以下循环结构:

#include <stdio.h>

int main() {
    int i, n;
    printf("Input the nth number of Adam's prime numbers, n = ");
    scanf("%d", &n);
    for (i = 3; i <= n+1; i++) {
        int j, k;
        j = i-2;
        k = i+2;
        int flag1 = 1, flag2 = 1;
        for (int x = 2; x <= j/2; x++) {
            if (j%x == 0) {
                flag1 = 0;
                break;
            }
        }
        for (int x = 2; x <= k/2; x++) {
            if (k%x == 0) {
                flag2 = 0;
                break;
            }
        }
        if (flag1 == 1 && flag2 == 1) {
            printf("(%d, %d)\n", j, k);
        }
    }
    return 0;
}

在这个程序中,我们要求输入亚当数的第n个数字,并通过循环找到从3开始的前n个亚当数对。在每一次循环中,我们将当前数值减去2和加上2,并在每个数字上运行一个简单的素数测试。如果两个数字都是素数,我们就打印它们。

结论

通过这样一个简单的程序,我们可以为数学和计算机科学的研究做出贡献,并且在C语言中更好地理解循环和素数测试算法。