PTA B級1007素数対推定dn=pn+1−pnと定義され、piがi番目の素数であることは明らかであるd「素数対推定」は「無限多対隣接かつ差2の素数が存在する」と考えられ、任意の正の整数Nの推定を満たす素数対の個数が与えられる
1007素数対推測(20点)
dnは、dn=p n+1−pnであり、p iはi番目の素数であると定義する.明らかにd 1=1であり、n>1に対してdnが偶数である.「素数対推測」は「隣接して差が2の素数が無限に多い」と考えられる.任意の正の整数N(<105)を与え、Nを超えない推定素数対を満たす個数を計算してください.(タイトルソースPTA B級)
入力形式:1行に正の整数Nを入力します.出力フォーマット:1行にNを超えない予想を満たす素数対の個数を出力する.
入力サンプル:20
出力サンプル:4
dnは、dn=p n+1−pnであり、p iはi番目の素数であると定義する.明らかにd 1=1であり、n>1に対してdnが偶数である.「素数対推測」は「隣接して差が2の素数が無限に多い」と考えられる.任意の正の整数N(<105)を与え、Nを超えない推定素数対を満たす個数を計算してください.(タイトルソースPTA B級)
入力形式:1行に正の整数Nを入力します.出力フォーマット:1行にNを超えない予想を満たす素数対の個数を出力する.
入力サンプル:20
出力サンプル:4
#include
#include
int main()
{
int n;
int k,i,j;
int m=0,sum=0;
scanf("%d",&n);
int a[n]; //.cpp ;.c
a[m++]=2;
// , a[]
for(i=2;i<=n;i++)
{
k=sqrt(i);
for(j=2;j<sqrt(i);j++)
{
if(i%j==0) break;
}
if(j>k) a[m++]=i;
else continue;
}
for(i=0;i<m-1;i++)
{
if(a[i+1]-a[i]==2) sum++;
}
printf("%d
",sum);
return 0;
}