记录一次python和C++的运行效率比较。(突发奇想
寻找100w以内的所有素数。
以下是python的实现。
import time
start_ = time.time()
for x in range(2,round(1e6+1)):
for y in range(1,round(x**0.5)):
if x%y==0:
continue
else:
print(f'{x}是素数')
end_ = time.time()
print(f'耗时{round(end_ - start_,2)}s') # 耗时150.98s
以下是C++实现。
int getPrimes()
{
int num = 0;
for (size_t i = 2; i < 1e6+1; i++)
{
int isPrime = 1;
for (size_t j = 2; j < sqrt(i); j++)
{
if (i%j==0)
{
isPrime = 0;
break;
}
}
if (isPrime)
{
//cout << i << "是素数 " << endl;
num++;
}
}
return num;
}
auto startTime = std::chrono::system_clock::now();
int num = getPrimes();
auto endTime = std::chrono::system_clock::now();
// 示例
std::cout << "time(ms):" << std::chrono::duration_cast<std::chrono::milliseconds>(endTime - startTime).count() << std::endl;
//2166 ms
cout << "素数的个数:" << num << endl;
运行结果,c++实现耗时2166ms,python实现运行耗时150.98s。