用C语言如何判断素数

 我来答
烈阳下的白雪
2018-07-24
知道答主
回答量:6
采纳率:50%
帮助的人:4.4万
展开全部
#include "stdio.h"
int main()
{
int n,flag=1,i;
scanf("%d",&n);//输入一个数n,判断它是否是素数。
if(i>1){//素数是大于1的
for(i=2;i<n;i++)
{
if(n%i==0)// 根据素数的定义n依次除以小于它本身大于1的数
flag=0;//一旦有能被整除的数,表明 n不是素数,使得flag=0 。
}
if(flag==0)//根据flag的值判断n是否是素数
printf("%d不是素数",n);
else
printf("%d是素数",n);
return 0;
}
else{
printf("%d不在素数范围内",n);}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
侠义南宫天诺
2018-07-23 · TA获得超过415个赞
知道小有建树答主
回答量:349
采纳率:56%
帮助的人:167万
展开全部

比如这个数为n,简单解释一下这个代码,首先判断素数只需要知道他能不能被一个除1和他本身的数整除,因此我们只需要遍历 2~n这些数,看有没有能被n整除的数,但是我们再进一步想,其实只需要到根号n就可以了,举个例子:6,我们只需要遍历到2,因为6/2=3,6/3=2。最后我们还需要排除一下n=1的情况,因为1既不是质数,也不是合数。将这个思路封装成函数,is_prime(6)会返回0,is_prime(3)会返回1

int is_prime(int n)
    for(int i=2;i*i<=n;i++){
        if(n%i==0 ) return 0;
    return n!=1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
是对方的事88
2018-07-14
知道答主
回答量:22
采纳率:0%
帮助的人:1.8万
展开全部
素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
如上定义得出最简单粗暴的解法(也是最容易理解的)
bool isPrime( int temp)
{
int i;
int prime=temp;

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

{
if( prime%i ==0)//求余得0则能被整除
return FALSE;
}
return TRUE;

}
上述函数传变量temp函数会返回真假值判断是否素数
理解更深的可以简化计算机的运算这里我就不写了,需要的话再跟你写。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刀劈华山
2018-06-26 · TA获得超过2273个赞
知道小有建树答主
回答量:1338
采纳率:72%
帮助的人:379万
展开全部
#include <stdio.h>

void prime_number()
{
    int i = 0;
    int j = 0;
    unsigned int a = 0;
 
    printf("\n输入一个自然数:\n");
    scanf("%u", &a);
 
    //素数就是除了1和a本身外没有其他因数
    for (i = 2; i < a; i++)
    {
        if (0 == a%i)
        {
            printf("%u 不是一个质数\n", a);
            return;
        }
    }
 
    printf("%u %s一个质数\n", a, 1==a?"不是":"是");
    return;
}

int main(int argc, char *argv[])
{
    prime_number();
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黑之仙客
2018-08-02 · TA获得超过156个赞
知道小有建树答主
回答量:234
采纳率:89%
帮助的人:137万
展开全部
对单个数进行判断是否为素数的话,可以使用循环判断 [2, sqrt(x)] 中的所有整数是否能将 x 除尽。如果没有能整除 x 的数那 x 就是素数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式