小羊爱吃小草 发表于 2023-12-26 11:11:46

素数

#include <stdio.h>
#include <math.h>

int main()
{
      int n, i, k, sum;
      printf("请输入n值(n>=2且n<1000):");
      scanf("%d", &n);
      for(n = 2; n < 1000; n++)
      {
                for(i = 2; i < sqrt(998); i++)
                {
                        if(n % i == 0)
                        {
                              break;
                        }
                        else
                        {
                        k = n;
                        sum += k;
               
                }
                }
      printf("%d", sum);
      return 0;
      }
      
}
求n到1000所有素数的和,n>=2,n<1000.我写的哪里错了

FishC 发表于 2023-12-26 11:11:53

您好!要判断一个数是否为素数,只需要判断它能否被2到sqrt(n)之间的任意数整除,如果都不能整除,那么这个数就是素数。

下面是一个判断素数的完整代码:

#include<stdio.h>
#include<math.h>

int isPrime(int n)
{
    if(n < 2)
      return 0; // 小于2的数都不是素数

    int i;
    for(i = 2; i <= sqrt(n); i++)
    {
      if(n % i == 0) // 能被i整除,说明不是素数
            return 0;
    }

    return 1; // 没有被任何数整除,说明是素数
}

int main()
{
    int n;
    printf("请输入一个整数:");
    scanf("%d", &n);

    if(isPrime(n))
      printf("%d是素数\n", n);
    else
      printf("%d不是素数\n", n);

    return 0;
}

希望对您有帮助!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 素数