iostramusing 2022-03-02 21:20 采纳率: 96.3%
浏览 241
已结题

质数的和与积c++求解。

质数的和与积
题目描述
两个质数的和是S,它们的积最大是多少?
输入格式
一个不大于10000的正整数S,为两个质数的和。
输出格式
一个整数,为两个质数的最大乘积。数据保证有解。
输入输出样列
输入样例1:复制
50
输出样例1:复制
589
【耗时限制】1000ms 【内存限制】64MB

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-03-02 21:40
    关注
    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    bool isprime(int x)
    {
        if (x < 2)
            return false;
        int n = static_cast<int>(sqrt(x));
        for (int i = 2; i <= n; i++)
            if (x % i == 0)
                return false;
        return true;
    }
    
    int main()
    {
        int s, r = 0;
        cin >> s;
        for (int i = 2; i < s - 2; i++)
        {
            int j = s - i;
            if (isprime(i) && isprime(j))
            {
                int k = i * j;
                if (k > r)
                    r = k;
            }
        }
        cout << r;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月10日
  • 已采纳回答 3月2日
  • 创建了问题 3月2日