m0_66876619 2023-05-13 11:15 采纳率: 43.3%
浏览 71
已结题

一道叫稍微的水题之质数对

问题描述
给一个长度为n的数组,计算有多少对(i,j)满足i<j且a[i]+a[j]是质数
输入
第一行一个数n(1<=n<=2*10^3)
第二行n个数字其中一个数字x满足(1<=x<=10^5)
输出
符合要求的质数个数
输入样例
5
1 2 3 4 5
输出
2
说明
符合条件的有(1,2)和(1,4)

  • 写回答

3条回答 默认 最新

  • 语言-逆行者 2023-05-13 11:31
    关注

    你题目例子错了吧,(1,2)(1,4)(3,4)(2,5)(2,3)

    
    #include<iostream>
    #include<cmath>
    using namespace std;
    
    bool isPrime(int x) // 判断质数
    {
        if(x < 2)
            return false;
        for(int i=2; i<=sqrt(double(x)); i++)
            if(x%i == 0)
                return false;
        return true;
    }
    
    int main()
    {
        int n, a[2005];
        cin >> n;
        for(int i=0; i<n; i++)
            cin >> a[i];
        int cnt = 0;
        for(int i=0; i<n-1; i++)
            for(int j=i+1; j<n; j++)
                if(isPrime(a[i]+a[j])) // 如果和为质数
                    cnt++;
        cout << cnt << endl;
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月21日
  • 已采纳回答 5月13日
  • 创建了问题 5月13日