C语言:打印100-200之间的素数--试除法、

C语言:打印100-200之间的素数–试除法

//C语言:打印100-200之间的素数--试除法
#include <stdio.h>
int main()
{
	int i,j;
	int count = 0;
	for (i = 100; i <= 200; i++)
	{
		//判断i是否为素数
		//1.试除法  产生2-(i-1)的数。
		for (j = 2; j < i; j++)
		{
			if (i%j==0)
			{
				break;
			}
		}
		if (j == i)
		{
			printf("%d ", i);
			count++;
		}
	}
	printf("\n共%d个\n",count);
	return 0;
}

改进1:

//C语言:打印100到200之间的素数--改进:减少试除此数
#include<stdio.h>
#include<math.h>
int main()
{
	int i;
	int j;
	for (i = 100; i <= 200; i++)
	{
		for (j = 2; j <= sqrt(i); j++)
		{
			if (i%j == 0)
			{
				break;
			}
		}
		if (j > sqrt(i))
		{
			printf("%d ", i);
		}
	}
	return 0;
}

改进思路2:100-200之间偶数不是素数,直接奇数递加2

//C语言:打印100到200之间的素数--改进:减少试除此数
#include<stdio.h>
#include<math.h>
int main()
{
	int i;
	int j;
	for (i = 101; i <= 200; i+=2)
	{
		for (j = 2; j <= sqrt(i); j++)
		{
			if (i%j == 0)
			{
				break;
			}
		}
		if (j > sqrt(i))
		{
			printf("%d ", i);
		}
	}
	return 0;
}

版权声明:本文为LIHONGLI000125原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。