C语言求素数的几种方法
Posted 杨 戬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言求素数的几种方法相关的知识,希望对你有一定的参考价值。
文章目录
一、判断n是否能被2~n-1整除
输入的数n不能被2-(n-1)整除,说明是素数
输入的数n能被2-(n-1)整除,说明不是素数
注意:1不是素数,素数是指大于1的自然数,除了1和该数自身外,无法被其他自然数整除的数。
法一:
#include<stdio.h>
int main()
int i, n;
printf("请输入一个数:");
scanf("%d", &n);
for (i = 2; i < n ; i++)
if (n%i == 0)
break;
if (n <=1 ) printf("这不是素数\\n");
else if (i < n) printf("这不是素数\\n");
else printf("这是素数\\n");
return 0;
法二:
#include<stdio.h>
int main()
int i, n;
printf("请输入一个数:");
scanf("%d", &n);
if(n<=1)
printf("这不是素数\\n");
else
for (i = 2; i < n ; i++)
if (n%i == 0)
break;
if(i>=n)
printf("这是素数\\n");
else
printf("这不是素数\\n");
return 0;
二、判断n是否能被2~√n间的整数整除
输入的数n不能被2-√n整除,说明是素数
输入的数n能被2-√n整除,说明不是素数
方法一:
#include<stdio.h>
#include<math.h>
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("这不是素数\\n");
else if (i <= k) printf("这不是素数\\n");
else printf("这是素数\\n");
return 0;
方法二:
#include<stdio.h>
#include<math.h>
int main()
int n,i,k;
printf("请输入一个数:");
scanf("%d", &n);
if(n<=1)
printf("这不是素数\\n");
else
k=sqrt(n);
for (i=2;i<=k;i++)
if (n%i==0)
break;
if(i>=k+1)
printf("这是素数\\n");
else
printf("这不是素数\\n");
return 0;
以上是关于C语言求素数的几种方法的主要内容,如果未能解决你的问题,请参考以下文章