关于素数的问题

本文介绍了一个用C语言编写的素数判断程序。程序通过循环判断输入整数是否能被除1和自身以外的数整除,从而确定该数是否为素数。文章详细解释了程序的工作原理及关键步骤。

程序代码:

/*1*/    #include<stdio.h>

/*2*/    int main(void)
/*3*/    {
/*4*/    int num;//输入的整数
/*5*/    int isprime;//素数的标志
/*6*/    int div;//可能的约数
/*7*/    printf("please enter a number to analyze:q to quit\n");
   
/*8*/    while(scanf("%d",&num)==1)
/*9*/    {
/*10*/      for(div=2,isprime=1;(div*div)<=num;div++)//for循环开始的时候isprime等于1,观察一下for结束的时候是不是仍然等于1。
      
/*11*/        {
/*12*/          if(num%div==0)//如果输入的数是素数,则不会进入if语句。
          
/*13*/              if(div*div!=num)
/*14*/              printf("%d能被%d和%d整除\n",num,div,num/div);
/*15*/              else
/*16*/              printf("%d能被%d整除\n",num,div);
/*17*/              isprime=0;//在for循环里面设置一个相反的值
          
/*18*/        }     
/*19*/              printf("此时isprime的值是%d\n",isprime);//打印isprime的值。想知道输入的数有没有进入过for循环/n
                                              //结果无论输入素数还是非素数,isprime的值都是for循环里面的值(此处为0)。为什么????????


/*20*/             if(isprime==0)
/*21*/                 printf("你输入的%d不是素数。\n",num);
/*22*/             else
/*23*/              printf("你输入的%d是素数。\n",num);
            
/*24*/       printf("please enter a number to analyze:q to quit\n");
/*25*/   }
/*26*/   printf("\n");
/*27*/   return 0;

/*28*/   }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值