21xrx.com
2024-09-20 00:30:59 Friday
登录
文章检索 我的文章 写文章
「C语言求100到200之间的素数之和」的算法与实现
2023-06-16 13:39:56 深夜i     --     --
C语言 素数 试除法

素数一直是数学和计算机科学领域中的经典问题之一。在本文中,我们将使用C语言编写一个程序,来求100到200之间的素数之和。

素数指的是只能够被1和本身整除的正整数。这个定义虽然简单,但要判断一个数是否为素数却不太容易。为了判断一个数是否为素数,我们可以采用试除法。具体来说,就是将该数逐一除以小于它的所有可能因子,如果都不能整除,则该数为素数。

接下来,我们就来看看如何将这个算法用C语言来实现。

首先,我们需要定义一个函数来判断一个数是否为素数。代码如下:


int isPrime(int num) {

  if (num <= 1)

    return 0; // 小于等于1的数不是素数

  

  for (int i = 2; i <= sqrt(num); i++) {

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

    

  }

  return 1;

}

在这个函数中,我们首先判断如果输入的数字小于等于1,则它不是素数。接下来,我们采用试除法来判断这个数是否为素数。具体来说,就是将1和它本身之间所有的整数都做一遍除法,看是否能够整除。注意到这里我们只需要遍历到该数的平方根即可,因为如果比它大的数是它的因子,则比它小的数也是它的因子。

接下来,我们就可以在主函数中调用刚才定义的`isPrime`函数来求100到200之间的素数之和了。代码如下:


#include

#include

int isPrime(int num); // 声明判断素数的函数

int main() {

  int sum = 0;

  for (int i = 100; i <= 200; i++) {

    if (isPrime(i)) {

      sum += i;

    }

  }

  printf("100到200之间的素数之和为:%d\n", sum);

  return 0;

}

在这个程序中,我们遍历100到200之间的所有整数,然后将它们传入判断素数的函数中进行判断。如果该数是素数,则累加到`sum`变量中。最后,我们输出`sum`即为100到200之间的素数之和。

文章

  
  

评论区

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