PAT-B 1013. 数素数

来源:互联网 发布:网络市场监管工作思路 编辑:程序博客网 时间:2024/06/05 19:03

1. python for迭代中的range函数第二、三个参数可选,第二个为upper_bound, 第三个为interval

2. 和之前的1007素数对问题一样,C++能AC, python有一个测试点超时(测试点4)


AC的C++代码:

#include <cmath>#include <iostream>using namespace std;inline bool is_prime(int num){for (int i = 2; i <= sqrt(num); ++ i){if (num % i == 0){return false;}}return true;}int main(){int n, m, begin, cnt;cin >> n >> m;m = m - n + 1;for (begin = 2; -- n; ++ begin) {while (is_prime(begin) == false){++ begin;}}for (cnt = 1; m --; ++ begin, ++ cnt){while (is_prime(begin) == false){++ begin;}if (cnt % 10 != 0){cout << begin;if (m != 0){cout << " ";}} else{cout << begin << endl;}}return 0;}

python代码:

import mathdef is_prime(num) :    for i in range(2, int(math.sqrt(num))+1) :        if num % i == 0 :            return False    return Trueif __name__ == "__main__" :    num = raw_input().split(' ')    has_found = 0    begin = 2    while has_found < int(num[0])-1 :        while is_prime(begin) == False :            begin = begin + 1        begin = begin + 1        has_found = has_found + 1    cnt = 1    for has_found in range(int(num[0]), int(num[1])+1) :        while is_prime(begin) == False :            begin = begin + 1        if (cnt % 10 != 0) :            print begin,        else :            print begin        cnt = cnt + 1        begin = begin + 1


0 0
原创粉丝点击