PAT-B 1013. 素数を数える
1.python for反復のrange関数の2番目、3番目のパラメータはオプションで、2番目はupper_3番目はinterval
2.前の1007素数対の問題と同様に、C++はACができ、pythonはテストポイントがタイムアウトした(テストポイント4)
ACのC++コード:
pythonコード:
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