21xrx.com
2024-11-22 05:54:34 Friday
登录
文章检索 我的文章 写文章
素数在c语言中的表示
2023-06-18 10:04:45 深夜i     --     --
素数 c语言 判断函数 生成函数 数组

素数是指除了1和它本身之外没有其他因数的正整数。在计算机编程中,求素数是一个常见的问题。在c语言中,表示素数有多种方法,下面介绍其中一种。

1.判断函数

判断一个数是否为素数,可以使用函数进行判断。例如判断一个数n是否为素数,可以按照下面的思路进行编写:

bool is_prime(int n){

  if(n<2)

    //小于2的数都不是素数

    return false;

  for(int i=2;i*i<=n;i++){

    if(n%i==0)不是素数

      return false;

  }

  //没有被整除,是素数

  return true;

}

上面的代码通过循环从2到√n判断n是否能被整除来判断n是否为素数,如果能被整除,说明n不是素数;反之,说明n是素数。

2.生成函数

可以编写一个生成素数的函数,将生成的素数存储到数组中。例如下面的代码:

void generate_prime(int n, int prime[]){

  int i,j;

  int cnt=0;

  bool is_prime[n+1];

  memset(is_prime,true,sizeof(is_prime));

  is_prime[0]=is_prime[1]=false;

  for(i=2;i*i<=n;i++){

    if(is_prime[i]){

      prime[cnt++]=i;

      for(j=2;i*j<=n;j++){

        is_prime[i*j]=false;

      }

    }

  }

  for(;i<=n;i++){

    if(is_prime[i]){

      prime[cnt++]=i;

    }

  }

}

上面的代码使用一个数组is_prime来记录每个数是否为素数,如果是素数,则将其存储到数组prime中。首先标记0和1为非素数,然后从2开始遍历,如果遇到一个素数,就将其标记多于它的倍数为非素数。最后再把素数存储到数组中。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复