函数综合练习1507+2091

1507 大小质数

给出一个数n,求出比n大的第一个质数以及比n小的第一个质数。

例如:n = 5,输出7 3,比5大的第一个质数是7,比5小的第一个质数是3。

 

输入

一个数n(2 < n < 100000000)。

输出

输出2个数,中间用空格分割,分别对应比n大的第一个质数以及比n小的第一个质数。

输入样例

5

输出样例

7 3
参考代码:
#include <iostream>
#include <cmath>
using namespace std;

int n;

bool is_prime(int x) {
    if (x == 1) {
        return false;
    }
    for (int i = 2; i <= sqrt(x); ++i) {
        if (x % i == 0)    return false;
    }
    return true;
}

int main() {
    cin >> n;
    for (int i = n + 1; ; ++i) {
        if (is_prime(i)) {
            cout << i << ' ';
            break;
        }
    }
    for (int i = n - 1; i > 1; --i) {
        if (is_prime(i)) {
            cout << i << endl;
            break;
        }
    }
    
    return 0;
}

 

2091 幸运数字们

如果一个数字的十进制表示中有7,我们就认为他是幸运数字。

输入两个整数L, R(1<=L<=R<=100000)

输出所有满足L<=n<=R的幸运数字n。

从小到大输出所有幸运数字,一行一个。

特别注意如果区间内没有任何一个幸运数字,输出None

输入

一行两个整数L, R,其中1≤L≤R≤100000。

输出

从小到大输出所有幸运数字,一行一个。
特别注意如果区间内没有任何一个幸运数字,输出None

数据范围

对于10%的数据,1≤L≤R≤200;
对于100%的数据,1≤L≤R≤100000;

输入样例

88 111

输出样例

97
107

样例解释

88和111之间仅有97,107这两个数包含7,因此输出这两个数。

#include <iostream>
using namespace std;

int l, r;

bool is_lucky(int x) {
    while (x > 0) {
        int t = x % 10;
        if (t == 7)    return true;
        x /= 10;
    }
    return false;
}

int main() {
    cin >> l >> r;
    bool flag = true;
    for (int i = l; i <= r; ++i) {
        if (is_lucky(i)) {
            flag = false;
            cout << i << endl;
        }
    }
    if (flag) {
        cout << "None" << endl;
    }
    
    return 0;
}

  

posted @ 2021-06-17 13:30  tianluman  阅读(350)  评论(0编辑  收藏  举报