zoukankan      html  css  js  c++  java
  • NYOJ26孪生素数问题

    孪生素数问题

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:2
     
    描述
    写一个程序,找出给出素数范围内的所有孪生素数的组数。一般来说,孪生素数就是指两个素数距离为2,近的不能再近的相邻素数。有些童鞋一看到题就开始写程序,不仔细看题,咱们为了遏制一下读题不认真仔细的童鞋,规定,两个素数相邻为1的也成为孪生素数。
     
    输入
    第一行给出N(0<N<100)表示测试数据组数。
    接下来组测试数据给出m,表示找出m之前的所有孪生素数。
    (0<m<1000000)
    输出
    每组测试数据输出占一行,该行为m范围内所有孪生素数组数。
    样例输入
    1
    14
    样例输出
    4
    View Code
     1  
     2 #include<stdio.h>
     3 #include<string.h>
     4 char str[1000001];
     5 void findprime(int n)
     6 {
     7      for(int i=2;i<=n;i++)
     8       if(str[i]=='1')
     9      {
    10                 for(int j=i+i;j<=n;j+=i)
    11                 str[j]='0';
    12      }
    13      return ;
    14 }
    15 int countprime(int n)
    16 {
    17     int first=2,count=0;
    18     for(int i=3;i<=n;i++)
    19     {
    20         if(str[i]=='1')
    21         {
    22             if(i-first<=2)
    23                count++;
    24             first=i;
    25         }
    26     }
    27   
    28     return count;
    29 }
    30 int main()
    31 {
    32     int n,m;
    33     scanf("%d",&n);
    34     while(n--)
    35     {
    36               memset(str,'1',sizeof(str));
    37               scanf("%d",&m);
    38               findprime(m);
    39               printf("%d\n",countprime(m));
    40     }
    41     return 0;
    42 }
    43               
    44     
    45         
  • 相关阅读:
    mysql8.0.20安装
    MySQL EXPLAIN结果集分析
    初次安装aliSql
    升级vim到8.0
    REPL环境对语言的帮助
    Python环境搭建及pip的使用
    mysql数据库分库分表(Sharding)
    Git的使用
    Promise的初步认识
    对引用的文件起别名
  • 原文地址:https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_2012_08_23.html
Copyright © 2011-2022 走看看