素数求解的n种境界

第一种:基本方法

//4.判断i是否为素数,素数是指只能被1和其本身所整除的数字
//查找1-100之间的素数
#include 
#include 

int main()
{
	int i = 0;
	int count = 0;
	for (i = 1; i <= 100; i++)
	{
		//试除法
		int j = 0;
		for (j = 2; j <= i; j++)
		{
			if (i%j == 0)
			{
				break;
			}
		}
		if (j == i)
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount = %d\n", count);
	return 0;
}

第二种: 修改查找的方式,用开平方的方法减小查找次数

int main()
{
	int i = 0;
	int count = 0;
	for (i = 1; i <= 100; i++)
	{
		//试除法
		int j = 0;
		for (j = 2; j <= sqrt(i); j++)//开平方
		{
			if (i%j == 0)
			{
				break;
			}
		}
		if (j >sqrt (i))
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount = %d\n", count);
	return 0;
}

第三种境界:在奇数中寻找素数

int main()
{
	int i = 0;
	int count = 0;
	for (i = 1; i <= 100; i+=2)//在奇数中寻找素数
	{
		//试除法
		int j = 0;
		for (j = 2; j <= i; j++)
		{
			if (i%j == 0)
			{
				break;
			}
		}
		if (j == i)
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount = %d\n", count);
	return 0;
}

你可能感兴趣的:(c语言,c语言,算法,动态规划)