两因子差超过x的最小整数-腾讯笔试

题目:对于至少有4个因子的整数n,若其满足任一两个因子之差大于等于x,求最小的整数n

思路:对于整数n,1和n本身为其两个因子,只需找到第一个大于1+x的质数l,和第一个大于l+x的质数r,其乘积r*l即为答案

    int T; cin >> T;
    for (int t = 0; t < T; ++t) {
        int x; cin >> x;
        int l = 1 + x;
        for (; l < INT_MAX; ++l) {
            bool flag = true;
            for (int i = 2; i <= l - 1; ++i) {
                if (l % i == 0) {
                    flag = false;
                    break;
                }
            }
            if (flag) {
                break;
            }
        }

        int r = l + x;
        for (; r < INT_MAX; ++r) {
            bool flag = true;
            for (int i = 2; i <= r - 1; ++i) {
                if (r % i == 0) {
                    flag = false;
                    break;
                }
            }
            if (flag) {
                break;
            }
        }
        cout << l * r << endl;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值