编写程序用于判断一个数是否是素数。

  素数(也叫质数)是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除。因此判断一个整数m是否是素数,只需把m2~m-1之间的每

一个整数去除,如果都不能被整除,那么m就是一个素数。


#include <stdio.h>

void main()

{

int i,n,signal=1;

printf("\n请输入一个正整数:");

scanf("%d",&n);

if(n<1)

printf("输入错误!\n");

else

{

for(i=2;i<n && signal==1;i++)

if(n%i==0)

signal=0;

if(signal==1)

printf("%d是素数!\n",n);

else

printf("%d不是素数!\n",n);

}

}



这个代码刚一开始没有看懂,因为在for循环之后没有大括号,感觉怪怪的,总感觉错,因为for循环或者是if语句,如果不加{}的话只能执行其下面的一条语句,最后看懂了。在for循环中的括号中for(i=2;i<n && signal==1;i++)其中i<n && signal==1这个表达式其关键作用。
    执行顺序是这样的,先执行表达式1,i=2;,然后表达式2,i<n && signal==1,再执行其下面的一句,if(n%i==0),因为if语句不加大括号的话也可以执行一句,所以如果if(n%i==0)成立的话,也可以执行signal=0;这一句。再执行表达式3,i++。循环结束的条件有两个,一个是signl = 0,另一个是i>=n。可以根据这来判断后面的。如果循环结束后signal还是1说明循环结束的条件是不满足i<n 这个条件。说明是在 2~m-1之间都不能整除m,所以m是素数。如果是由于signal==1这个条件无法满足而结束的循环,说明if(n%i==0)这条语句成立了,也就使signal=0;所以m不满足素数的条件。m不是素数。




  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值