用C语言如何判断素数
98个回答
展开全部
判断素数比较简单,首先你得知道,那些数属于素数,根据素数的定义,我们知道素数是指除了0与1之外,仅能被1和本身整除的数。那么我们直接依次进行判断就好了,代码如下:
bool isleap(int n){
bool ok=true;
if(n<=1) ok=false;
for(int i=2;i<n;i++){
if(n%i==0) ok=false;
}
if(!ok) return false;
else return true;
}
以上只是判断一个数是否为素数的函数,当然了,也还可以优化一下,但是这样写,更加便于你理解,有问题请追问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-07-09
展开全部
#include<stdio.h>
int main()
{
int n;//将要判断的数
scanf("%d",&n);
if(n<2)//素数是大于1的自然数,小于2的话就不判断了。
{
printf("输入数据不合法");
return 0;
}
if(n==2||n==3||n==5)//先将几个比较小的素数挑出来
{
printf("%d是素数",n);
}
for(int i=2;i<n;i++)//真正的判断过程,注意这里的i<n,除了1与数本身,其他数都不能整除它的数才是素数
{
if(n%i==0)//有任何一个中间的数能整除它,它就不是素数。
{
printf("%d不是素数",n);
return 0;//若当前数不是素数,直接退出程序,下面的代码便不会执行
}
}
printf("%d是素数",n);//若成功的运行到了这里,那么当前数是素数。
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
除了1 和本身 不能被整除
从1开始到本身,挨个判断整除,记录能整除的次数,次数为2的是素数
#include<stdio.h>
int main()
{
int i,a,j=0;
printf("input one number:\n");
scanf("%d",&a);
for(i=1;i<=a;i++)
if(a%i==0) j++;
if(j==2) printf("yes");
else printf("no");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
素数的定义是只能被自己和1整除。因此,如果待求数为N,则对于任意1<i<N,素数都不能整除。
bool PrimeCheck(int n){
if(n < 1){
return false;
}
for(int i = 2; i < n; i++){
if(n % i == 0){ //一旦出现能够整除的数就不是素数
return false;
}
}
return true; //遍历结束都没有能够整除的,则为素数
}
bool PrimeCheck(int n){
if(n < 1){
return false;
}
for(int i = 2; i < n; i++){
if(n % i == 0){ //一旦出现能够整除的数就不是素数
return false;
}
}
return true; //遍历结束都没有能够整除的,则为素数
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-07-06
展开全部
根据素数的定义看,除了1和自身,不能被任何数整除,那判断一个数就把它从2一直除到比自己小1的数,看看有没有能整除的
例:
#include<stdio.h>
void main()
{
int a;
printf("输入你要判断的数:");
scanf("%d",&a);
for(int i=2;i<a;i++)
{
if(a%i==0)
{
printf("该数不是素数哦!");
exit(0);
}
}
printf("该数就是素数哦!");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询