【C++ | PTA】鸿鸿哥分钱

文章目录

题目要求

鸿鸿哥最近和一个小伙伴做了个小项目,赚了一个亿,两人一起高高兴兴开了庆功宴之后,鸿鸿哥就准备分一下钱了。鸿鸿哥想了想,生意不是做一天的,所以一个亿之中的大部分资金还是要继续投资,不能只是做一发就走,这个想法也得到了小伙伴的认可。而余下来的钱不知道具体数值,只知道是x万~y万之间(因为某种神秘力量余下的钱一定是偶数万)。而鸿鸿哥原本也是土豪,这点小钱也看不上眼,于是他想分多一点给小伙伴,他决定把钱分成两个素数(程序员喜欢各种特别的数字),自己拿小的那份。那么问题来了,鸿鸿哥和小伙伴个各拿多少万呢?鸿鸿哥想知道所有可能的分法。

输入格式:
输入两个整数x,y(6<=x,x<=y,n<=100),一组输入。

输出格式:
输出x和y之间所有偶数表示成的两个素数之和。

输入样例:
8 10

输出样例:
8=3+5
10=3+7


代码

具体实现代码如下:

#include <iostream>
#include <cmath>
using namespace std;

bool is_prime(int n) { // 判断素数函数
    if (n <= 1) {
        return false;
    }
    for (int i = 2; i <= sqrt(n); i++) {
        if (n % i == 0) {
            return false;
        }
    }
    return true;
}

void decompose(int a) { // 素数分解函数
    for (int i = 2; i <= a/2; i++) { // 只需枚举到 a/2 即可
        if (is_prime(i) && is_prime(c-i)) {
            cout << a << "=" << i << "+" << a-i << endl;
            break; // 找到一个解即可退出循环
        }
    }
}

int main() {
    int x, y;
    cin >> x >> y;
    if (x % 2 != 0) { // 如果 x 不是偶数,则将其加 1
        x++;
    }
    for (int i = x; i <= y; i += 2) { // 对于偶数区间内的每一个数进行分解
        decompose(i);
    }
    return 0;
}

值得注意的是,主函数中有对decompose函数进行循环遍历,因此在 decompose 函数中,只要找到一个符合条件的解即可退出循环。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要向QDomDocument中插入一个节点,该节点有多个数据,可以遵循以下步骤: 1. 创建一个QDomElement对象,该对象表示要插入的节点。 2. 调用QDomDocument对象的createElement()方法创建该节点。 3. 为该节点添加属性,可以通过QDomElement对象的setAttribute()方法实现。 4. 为该节点添加多个子节点,可以通过以下步骤: - 创建一个QDomElement对象,该对象表示要添加的子节点。 - 调用该子节点的appendChild()方法将其添加为当前节点的子节点。 - 调用该子节点的appendChild()方法向其添加文本节点或其他子节点。 以下是一个示例代码片段: ```cpp QDomDocument doc; QDomElement root = doc.createElement("root"); doc.appendChild(root); QDomElement person = doc.createElement("person"); person.setAttribute("id", "123"); root.appendChild(person); QDomElement name = doc.createElement("name"); name.appendChild(doc.createTextNode("John")); person.appendChild(name); QDomElement age = doc.createElement("age"); age.appendChild(doc.createTextNode("30")); person.appendChild(age); QDomElement address = doc.createElement("address"); person.appendChild(address); QDomElement street = doc.createElement("street"); street.appendChild(doc.createTextNode("123 Main St.")); address.appendChild(street); QDomElement city = doc.createElement("city"); city.appendChild(doc.createTextNode("Anytown")); address.appendChild(city); QDomElement state = doc.createElement("state"); state.appendChild(doc.createTextNode("CA")); address.appendChild(state); ``` 上述代码将创建一个包含一个根元素和一个子元素的QDomDocument对象。该子元素为"person",包含一个"id"属性和三个子节点:"name"、"age"和"address"。其中,"name"和"age"节点为文本节点,"address"节点又包含了三个子节点:"street"、"city"和"state"。可以根据需要修改代码以适应不同的要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏,祝你平安喜乐。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值