PAT-B 1007. 素数对猜想(C++, python)

本文探讨了Python和C++在素数判断上的性能差异,通过具体实例展示了两种语言实现相同功能的不同方法,并分析了Python在处理密集型计算任务时遇到的性能瓶颈。

python的最后一个测试点超时,跪了。难道要用转载的那个快速线性筛法求素数吗 ...


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, prev = 2, cnt = 0;

	cin >> n; 
	for (int i = 2; i <= n; ++ i)
	{
		if (is_prime(i) == true)
		{
			if (i - prev == 2)
			{
				++ cnt;
			}
			prev = i;
		}
	}
	cout << cnt;

	return 0;
}

python:

import math

def is_prime(num) :
    i = 2
    cnt = int(math.sqrt(num))
    while i <= cnt:
        if num % i == 0 :
            return False
        i = i + 1        
    return True
        
if __name__ == "__main__" :
    n = input()
    prev = i = 2
    cnt = 0
    while i <= n :
        if is_prime(i) :
            if  i - prev == 2 :
                cnt = cnt + 1
            prev = i
        i = i + 1
    print cnt


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值