现在给你n,k,想知道有多少对不超过n的素数,它们的差不超过k。也就是说有多少对(p,q),满足p,q都是素数,并且1≤p<q≤n且q≤p+k。
输入格式
第一行两个整数n,k。
输出格式
一行一个整数,表示答案。
样例输入1
10 2
样例输出1
3
样例输入2
1000 50
样例输出2
1337
样例输入3
967400 911694
样例输出3
2888073728
时间限制:2s
空间限制:1GB
现在给你n,k,想知道有多少对不超过n的素数,它们的差不超过k。也就是说有多少对(p,q),满足p,q都是素数,并且1≤p<q≤n且q≤p+k。
输入格式
第一行两个整数n,k。
输出格式
一行一个整数,表示答案。
样例输入1
10 2
样例输出1
3
样例输入2
1000 50
样例输出2
1337
样例输入3
967400 911694
样例输出3
2888073728
时间限制:2s
空间限制:1GB
#include <stdio.h>
int isprime(int n)
{
for(int i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int a[10000];
int n,k,count=0,num=0;
scanf("%d%d",&n,&k);
for(int i=2;i<=n;i++)
if(isprime(i))
a[count++] = i;
for(int i=0;i<count-1;i++)
{
for(int j=i+1;j<count;j++)
{
if(a[j] - a[i] <= k)
num++;
else
break;
}
}
printf("%d\n",num);
return 0;
}