~素数~

       素数又称质数,除了1和它本身以外不再有其他因数的数。1既不是素数,也不是合数。2是最小的素数。

判断一个数是否为素数的方法很多,接下来我们一一来看:

法一:让该数num依次除以2,3,…,num-1,若num不能被2~num-1中的任何一个整数整除,则num是素数。

           代码如下:

int IsPrame(int num)
{
	int i = 0;

	for(i=2; i<num; i++)
	{
		if(num % i == 0)
		{
			return 0;
		}
	}
	return 1;
}

法二:让该数num让num依次除以2,3,…,num/2,若num不能被2~num/2中的任何一个整数整除,则num是素数。

           原因:一个整数能被另一个整数整除,最少是他的2倍。

           代码如下:

int IsPrame(int num)
{
	int i = 0;

	for(i=2; i<(num/2); i++)
	{
		if(num % i == 0)
		{
			return 0;
		}
	}
	return 1;
}

法三:让该数num让num依次除以2,3,…,√num,若num不能被2~√num中的任何一个整数整除,则num是素数。

           原因:num能被2~num-1之间任一整数整除,其二个因子必定有一个小于或等于√num,另一个大于或等于√num。

           代码如下:

int IsPrame(int num)
{
	int i = 0;
	int n = (int)sqrt((double)num);

	for(i=2; i<n; i++)
	{
		if(num % i == 0)
		{
			return 0;
		}
	}
	return 1;
}

注意:使用该断代码时,应包头文件#include <math.h>。

法四:让该数num让num依次除以3,5,…,若num不能被3,5,…中的任何一个整数整除,则num是素数。

           原因:除2以外,素数不可能是偶数。故循环条件为for(i=1; i<num; i+=2),对应上述3种方法。

           代码如下:

int IsPrame(int num)
{
	int i = 0;

	for(i=2; i<num; i+=2)
	{
		if(num % i == 0)
		{
			return 0;
		}
	}
	return 1;
}


根据以上方法来看,判断一个数否为素数的关键点应为如何设计循环条件,一个好的循环条件可以事半功倍!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值