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(...
·
一、判断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;
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献6条内容
所有评论(0)