C语言求素数的几种方式总结

  目录

  一、判断n是否能被2~n-1整除

  输入的数n不能被2-(n-1)整除,说明是素数

  输入的数n能被2-(n-1)整除,说明不是素数

  注意:1不是素数,素数是指大于1的自然数,除了1和该数自身外,无法被其他自然数整除的数。

  方法一

  #include

  int main()

  {

  int i, n;

  printf("请输入一个数:");

  scanf("%d", &n);

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

  {

  if (n%i == 0)

  break;

  }

  if (n <=1 ) printf("这不是素数

  ");

  else if (i < n) printf("这不是素数

  ");

  else printf("这是素数

  ");

  return 0;

  }

  方法二

  #include

  int main()

  {

  int i, n;

  printf("请输入一个数:");

  scanf("%d", &n);

  if(n<=1)

  printf("这不是素数

  ");

  else

  {

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

  {

  if (n%i == 0)

  break;

  }

  if(i>=n)

  printf("这是素数

  ");

  else

  printf("这不是素数

  ");

  }

  return 0;

  }

  二、判断n是否能被2~√n间的整数整除

  输入的数n不能被2-√n整除,说明是素数

  输入的数n能被2-√n整除,说明不是素数

  方法一

  #include

  #include

  int main()

  {

  int n,i;

  double k;

  printf("请输入一个数:");

  scanf("%d", &n);

  k = sqrt(n);

  for (i = 2; i <= k;i++)

  {

  if (n%i == 0) break;

  }

  if (n <=1 ) printf("这不是素数

  ");

  else if (i <= k) printf("这不是素数

  ");

  else printf("这是素数

  ");

  return 0;

  }

  方法二

  #include

  #include

  int main()

  {

  int n,i,k;

  printf("请输入一个数:");

  scanf("%d", &n);

  if(n<=1)

  printf("这不是素数

  ");

  else

  {

  k=sqrt(n);

  for (i=2;i<=k;i++)

  {

  if (n%i==0)

  break;

  }

  if(i>=k+1)

  printf("这是素数

  ");

  else

  printf("这不是素数

  ");

  }

  return 0;

  }

  总结

  以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

  您可能感兴趣的文章: