马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 八戒253 于 2021-5-21 18:36 编辑  
- #include <stdio.h>
 
 - #include <stdbool.h>
 
 - int main(void)
 
 - {
 
 -         bool flag = false;
 
 -         int su_shu[1000];
 
 -         int N,i,j,k=1;
 
 -         int count = 0;//用来记录最后的数 
 
 -         scanf("%d",&N);
 
 -     if(N!=1)
 
 -         su_shu[0] = 2;
 
 -         for(i=3;i<=N;i++)
 
 -         {
 
 -                 for(j=2;j<i;j++)
 
 -                 {
 
 -                         if(i%j == 0)
 
 -                         {
 
 -                                 flag = true;
 
 -                                 break;
 
 -                         }
 
 -                 }
 
 -                 if(!flag)
 
 -                 {
 
 -                         su_shu[k++] = i;
 
 -                 }
 
 -                 flag = false;
 
 -         }
 
 -                 
 
 -         for(i=0;i<k-1;i++)
 
 -         {
 
 -                 if(su_shu[i+1]-su_shu[i]==2)
 
 -                 {
 
 -                         count++;
 
 -                 }
 
 -         }
 
 -         printf("%d",count);
 
 -         return 0;
 
 - }
 
  复制代码 PTA 
让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数。显然有d​1​​=1,且对于n>1有d​n​​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<),请计算不超过N的满足猜想的素数对的个数。 输入格式:输入在一行给出正整数N。 输出格式:在一行中输出不超过N的满足猜想的素数对的个数。 输入样例:20 
 
输出样例:4
 
该如何解决??  感谢帮助!!! 
- #include<stdio.h>
 
 - #include<math.h>
 
  
- int IsPrime(int n) // 判断素数的函数
 
 - {
 
 -         int i;
 
 -         for(i=2;i<=sqrt(n);i++) // 高效求素数的范围 i<=sqrt(n)
 
 -         {
 
 -                 if(n%i==0)
 
 -                         return 0;
 
 -         }
 
 -         return 1;
 
 - }
 
  
- int main()
 
 - {
 
 -         int N;
 
 -         scanf("%d",&N);
 
 -     if( N>0 && N<(int)pow(10, 5) )
 
 -     {
 
 -         int i, count=0; // const 用来记录"相邻且差为2的素数"的个数
 
 -         for(i=3;i<=N-2;i+=2) // 每组的跨度
 
 -         {
 
 -             if( IsPrime(i)&&IsPrime(i+2) ) // 相邻且差为2的素数
 
 -                 count++;
 
 -          }
 
 -         printf("%d\n",count);
 
 -     }
 
  
 
-         return 0;
 
 - }
 
 
  复制代码 
 
 
 |