21xrx.com
2024-06-20 06:17:05 Thursday
登录
文章检索 我的文章 写文章
C 中的质数程序
2021-07-06 22:20:10 深夜i     --     --
C

C语言素数程序,检查一个数是素数还是合数,打印素数。 如果一个数只能被 1 和它自己整除,那么它就是素数。

2 是唯一的偶数和最小的素数。 前几个素数是 2, 3, 5, 7, 11, 13, 17, ....素数在计算机科学和数学中有很多应用。 大于 1 的数可以分解为质数,例如 120 = 23*31*51 (8*3*5)。

 

C语言中的质数

#include <stdio.h>


int main()
{
  int n, i = 3, count, c;

  printf("Enter the number of prime numbers to print\n");
  scanf("%d", &n);

  if (n >= 1) {
    printf("First %d prime numbers are:\n",n);
    printf("2\n");
  }

  for (count = 2; count <= n;)
  {
    for (c = 2; c <= i - 1; c++)
    {
      if (i%c == 0)
        break;
    }
    if (c == i)
    {
      printf("%d\n", i);
      count++;
    }
    i++;
  }

  return 0;
}

 

程序输出:

下载质数程序。

素数与否的C程序

#include<stdio.h>


int main()
{
  int n, c;

  printf("Enter a number to check if it's prime\n");
  scanf("%d", &n);

  for (c = 2; c <= n/2; c++)
  {
    if (n%c == 0)
    {
      printf("%d is a composite number.\n", n);
      break;
    }
  }

  if (c == n/2 + 1)
    printf("%d is prime.\n", n);

  return 0;
}

使用函数求素数的C程序

#include<stdio.h>


int check_prime(int);

int main()
{
   int n, result;
   
   printf("Enter an integer to check whether it's prime or not.\n");
   scanf("%d",&n);

   result = check_prime(n);
   
   if (result == 1)
      printf("%d is prime.\n", n);
   else
      printf("%d isn't prime.\n", n);
   
   return 0;
}

int check_prime(int a)
{
   int c;
   
   for (c = 2; c <= a - 1; c++)
   {
      if (a%c == 0)
     return 0;
   }
   if (c == a)
      return 1;
}

有许多动态逻辑来检查素性,下面给出一种方法。

for (c = 2; c <= (int)sqrt(n); c++)

仅检查数字的 2 到平方根就足够了。

  
  

评论区

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