素数对

小王于2022-04-11发布在亲友圈 / 被围观1.3k次

题目描述

两个相差为 2 的素数称为素数对,如 5 和 7,17 和 19 等,本题目要求找出所有两个数均不大于 n 的 素数对。

输入

一个正整数 n。1 <= n <= 10000。

输出

所有小于等于 n 的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数 对,输出 empty。

样例输入

100

样例输出

3 5
5 7
11 13
17 19
29 31
41 43
59 61
71 73

题解

cpp

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
bool isprime(int x)
{
    if (x < 2) 
        return false;
    for (int i = 2;i < x;i++) 
    { 
        if (x % i == 0) 
            return false; 
    } 
    return true; 
} 
int main() { 
    int n,t,c; cin >> n;
    for (int i = 1;i <= n - 2;i++)
    {
        if(isprime(i))
        {
            if (isprime(i + 2))
            {
                cout << i << " " << i + 2 << endl;
                t = 1;
            }
        }
    }
    if (t == 0)
         cout << "empty";
    return 0;
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注