标题7-45 素数对猜想 (20分)

标题7-45 素数对猜想 (20分)

让我们定义dn为:d​n​​ =p(n+1)​ −pn​​ ,其中p​i​​ 是第i个素数。显然有d​1=1,且对于n>1有dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。

现给定任意正整数N(<1​0的5次方),请计算不超过N的满足猜想的素数对的个数。

标题输入格式:

输入在一行给出正整数N。

标题输出格式:

在一行中输出不超过N的满足猜想的素数对的个数。

标题输入样例:

20

标题输出样例:

4

# include<stdio.h>
# include<math.h>
int isprime(int n);
int main(){
	int n;
	scanf("%d",&n);
	int i=0;
	int j,k;
	for(j=1;j<=n;j++){
		if(isprime(j)){
			for(k=j+1;k<=n;k++){
				if(isprime(k)){
					if(k-j==2){
						i++;
					}
					break;
				}
			}
			j=k-1;/*循环结束后j还要加一,所以要先减
			1*/
		}
	}
	printf("%d",i);
}
int isprime(int n){
	int tmp;
	if(n<5){
		if(n==2||n==3){
			return 1;
		}else{
			return 0;
		}	
	}
	if(n%6!=1&&n%6!=5){
		return 0;
	}
	tmp=sqrt(n);
	for(int i=5;i<=tmp;i+=6){
		if(n%i==0||n%(i+2)==0){
			return 0;
		}
	}
	return 1;
}//这个素数判断方法是从另一个大佬那学的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值