(新手)cpp第七章关于判断素数的一段代码 p188

cpp第七章p188
编写一段关于判断素数以及找出它们的约数。
首先给出代码

#include<stdio.h>
#include<stdbool.h>
int main()
{
	unsigned long num;  //待测试的数字 
	unsigned long div;  //约数 
	bool isPrime;       //素数标记
	printf("please enter an integer for analysis;");
	printf("enter q to quit.\n");
	while(scanf("%lu",&num)==1)
	{
		for(div=2,isPrime=true;(div*div)<=num;div++)
		{
			if(num%div==0)
			{
				if(div*div!=num)
				printf("%lu is divisible by %lu and %lu.\n",num,div,num/div);
			    else
			    printf("%lu is divisible by %lu\n",num,div);
			    isPrime=false;
			}
		}
		if(isPrime)
		  printf("%lu is prime.\n",num); 
		printf("please enter another integer for analysis.\n");
		printf("enter q to quit.\n");
	 } 
	 printf("bye~");
	 return 0;
	
}

程序的编译结果
在这里插入图片描述
在其中遇到的错误:
1.for循环的初始化和条件中分号;与逗号,混用(基本功不扎实…)
解析:for的()内包括三部分内容,初始化、条件、驱动变化,用“;”隔开,而每一部分内容用“,”隔开
比较简练部分:
1.第一个while中把输入函数scanf与判断合在一起
2.利用平方根的范围判断,大大减少了运算过程
3只采用运算中想要的部分,当判断到不合条件直接忽略

求解:下面的if(isPrime)到底是怎么用的,初判断它下面部分也属于while循环里但不在for里的,应该是一定要输出的,那它有什么作用呢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值