若两个自然连续数乘积减1后是素数,则称此两个自然连续数为友数对,该素数称为友素数

若两个自然连续数乘积减1后是素数,则称此两个自然连续数为友数对,该素数称为友素数,
例:2*3-1=5,因此2与3是友数对,5是友素数,
求[40,119]之间友素数对的数目。
求各位帮助谢谢了

供参考


```c
int F(int x) {
    for (int i = 2; i < x; i++) {
        if (x % i == 0) {//能被整除不是素数
            return 0;
        }
    }
    return 1;//不能被整除是素数,返回
}
int main() {
    int i;
    int count = 0;//计个数
    for (i = 40; i <= 119; i++) {
        int j=i+1;
        if (F((i * j - 1)) == 1) {//判断结果是否是素数
            printf("%d与%d是有数对,%d是有素数\n", i, j, (i * j - 1));
            count++;            
        }
    }
    printf("一共有%d个有数对\n", count);
    return 0;
}


img

望采纳


供参考:

#include<stdio.h>

int isPrime(int n)
{
    int i;
    if (n <= 3) return n > 1;
    for (i = 2; i * i <= n; i++)
        if (n % i == 0) return 0;
    return 1;
}

int main()
{
    int n, k = 0, i;
    for (i = 40; i < 119; i++)
    {
        if (isPrime(i * i + i - 1)) {
            k++;
            printf("%d,%d\n", i, i + 1);
        }
    }
    printf("%d\n", k);
    return 0;
}

  1. 百度上搜一个求素数函数
  2. 写一个for循环,按他的公式套用一下就行