代码功能:1--400万之间找素数。分别用C,Java,Python语言实现,算法相同,三种语言用时测试结果如下:C语言用时:96秒。Java:用时:128秒。Python用时:8929秒(约2.48小时)Python为什...
代码功能:1--400万之间找素数。分别用C ,Java , Python 语言实现,算法相同,三种语言用时测试结果如下:
C语言用时:96秒。
Java:用时: 128秒。
Python 用时 : 8929 秒 (约2.48小时)
Python 为什么如此之慢呢????
硬件: 处理器:Intel Core i7 , Memory: 8G
PYTHON代码:
import time
start=time.clock()
prime=[]
prime.append(2)
n=1
i=1
for k in range(3, 4000000):
j=0
while ((j
j+=1
if (j==n):
prime.append(k)
i+=1
n+=1
k=k+2
end=time.clock()
print "done!"
print prime
print end-start
程序功能:1--400万之间找素数。
分别用C ,Java , Python 语言实现,算法相同,三种语言用时测试结果如下:
C语言用时:96秒。
Java:用时: 128秒。
Python 用时 : 8929 秒 (约2.48小时)
Phthon 为什么如此之慢呢????
C代码:
#include
using namespace std;
int main()
{
const int MAX=4000000, SIZE=283146;
//const long MAX=100, SIZE=30;
int prime[SIZE]={0};
int i,j,k,n;
prime[0]=2;
n=1;
i=1;
k=3;
clock_t start,finish;
double totaltime;
start=clock();
do
{
j=0;
while ((j
j++;
if (j==n)
{
prime[i]=k;
i++;
n++;
}
k=k+2;
}while(k
finish=clock();
totaltime=(double)(finish-start)/CLOCKS_PER_SEC;
cout << "All primes in 2 ~ " << MAX << "are:";
for (i=0;i< SIZE ;i++)
{
cout<
if ((i+1)% 10==0) cout<
}
cout << "\n";
cout <
cout <
}
JAVA代码:
public class Prime_array {
public static void main(String[] args)
{
final int MAX=4000000, SIZE=283146;
int prime[]=new int [SIZE];
int i,j,k,n;
prime[0]=2;
n=1;
i=1;
k=3;
String str="";
long starTime=System.currentTimeMillis();
do
{
j=0;
while ((j
j++;
if (j==n)
{
prime[i]=k;
i++;
n++;
//j=0;
}
k=k+2;
}while(k
long endTime=System.currentTimeMillis();
long Time=endTime-starTime;
System.out.println("All primes in 2~" + MAX + "are:");
for (i=0;i< SIZE ;i++)
{
System.out.print("\t" + prime[i]);
if ((i+1)% 10==0) System.out.println();
}
System.out.println();
System.out.println("n="+ n);
System.out.println("程序运行时间:"+ Time/1000);
}
}
PYTHON代码:
import time
start=time.clock()
prime=[]
prime.append(2)
n=1
i=1
for k in range(3, 4000000):
j=0
while ((j
j+=1
if (j==n):
prime.append(k)
i+=1
n+=1
k=k+2
end=time.clock()
print "done!"
print prime
print end-start
展开