首页 > 技术文章 > c语言实践 判断一个数是不是素数

yfish 2018-09-19 00:37 原文

int main()
{
    
	int input = 0;
	scanf_s("%d",&input);
	if (input < 2)
	{
		printf("wrong input");
		return 0;
	}


	for (int i = 2; i < input; i++)
	{
		if (input % i == 0)//能整除说明不是素数
		{
			printf("not prime");//不是素数就不要循环下去了
			return 0;

		}


	}
	//如果流程到了这里,说明input已经对i到input-1这中间所有的整数都尝试过了
	//而且都不能整除,说明是素数。
	printf("is prime");



	return 1;

  

今天又想出了一种方法,感觉这种比较好理解。

int main()
{
    
	int Isprime ;//素数标志,如果一个数是素数,它的结果就是1,不是它的结果即使0
	int input = 0;
	
		scanf_s("%d", &input);
		if (input < 2)
		{
			printf("wrong input ");
			return 0;
		}

		for (int i = 2; i < input; i++)
		{
			if (input%i == 0)
			{
				Isprime = 0;//不是素数
				break;// 不是素数就不用往下循环了,直接跳出来。
			}
			else
			{
				Isprime = 1;
			}
		}

		if (Isprime == 1)
		{
			printf("is prime\n");
		}
		else
		{
			printf("not prime\n");
		}

	
}

  

推荐阅读