10.在两个数之间,求素数

问题:输入两个数,求在这两个数之间的素数。

分析思路:

素数:什么是素数?素数就是很朴素的一个数,它只跟1和自己玩,不跟其他数字玩,因此,它只可以被1和自身整除。

1.从键盘输入两个数字——scanf()

2.判断素数,需要用一个数字,从头到尾跟这个数字比较,因此需要双循环进行遍历,外循环是需要判断的数字,内循环则是从头至尾与这个数字进行比较,若发现可以整除,那么它就不是素数,直接换下一个数字即break跳出内循环,若内循环遍历完,无变化,则输出是素数。可以在内循环前定义一个数字,若不是素数,则数字发生变化,若循环结束后,数字无变化,则输出素数。

代码如下:

#include 

int main()
{
	printf("输入两个数,判断两个数之间的素数\n");
	int num1, num2;
	scanf_s("%d %d",&num1,&num2);
	printf("素数分别为:");
	for (int i=num1;i

优化后:

#include 
#include 
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	
	int i,j;
	for(int i=a;i<=b;i++)
		{
			int su=1;
			for(j=2;j<=sqrt(i);j++)   // 例如24   那么需要2~23进行相除比较。 
			{					//    2*12 =24 3*8=24 4*6=24  当检测到2时 ,12就不用检测了。当检测到3时 8就不用检测了 ,当检测到4时,6就不用检测了
									// 若a*b =c 则,根号c必定大于其中一个,所以检测时,检测到sqrt(c)即可,因为只要有一个可以整除它,它就不是素数, 
				if(i%j==0 && i!=j)
				{
					su =0;
					break;
				}
			}
		
			if(su==1)
			printf("%d是素数\n",i);
		}
	
	return 0;
}

你可能感兴趣的:(C语言学习笔记,c语言,经验分享,学习)