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 math
def is_prime(num) :
for i in range(2, int(math.sqrt(num))+1) :
if num % i == 0 :
return False
return True
if __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