日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

C語言判斷數(shù)是否為素數(shù)與素數(shù)輸出_C 語言

作者:小夏跑不死 ? 更新時間: 2022-03-17 編程語言

素數(shù)的概念:素數(shù)也叫質(zhì)數(shù),是一種只能被自己本身和1整除的數(shù)并且大于1,當然0與1不是素數(shù)。

1.判斷單個數(shù)是否為素數(shù)(多組輸入)

我的思路是,首先輸入一個數(shù),利用素數(shù)的概念來判斷是非為素數(shù),是的話輸出素數(shù);否則不輸出。

關(guān)于素數(shù)的判斷首先我們吧輸入的數(shù)當初被除數(shù),我選擇用一個for循環(huán)來實現(xiàn),從2開始當除數(shù),每輪加1,一直循環(huán)去除被除數(shù),一直除到被除數(shù)減一那個數(shù),要是期間能被一個數(shù)整除則跳出循環(huán)不為素數(shù),要是一直沒有被整除則輸出這個素數(shù)。

#include<stdio.h>
int main()
{
	int a=0, j;
	while (scanf_s("%d", &a) != EOF)
	{
		int flag = 1;
		for (j = 2; j < a; j++)
		{
			if (a % j == 0)
			{
				flag = 0;
				break;
			}
		}		
		if (flag == 1 && a != 0 && a != 1)//0與1不是素數(shù)
			printf("%d為素數(shù)。\n", a);
		else
		printf("%d不是素數(shù)。\n", a);
	}
	return 0;
}

這里我選擇引用一個局部變量flag來當作判斷是否為素數(shù)的標志,剛剛開始賦值為1,假如被整除了就變?yōu)?,最后直接判斷flag的值,1為素數(shù);否則不是。

最后代碼運行

2.輸入范圍輸出范圍內(nèi)的素數(shù)

這個算是上一個例子的高階版,這個題的我們得解決兩個問題:①把這個范圍的數(shù)全都進行輸出②判斷輸出的數(shù)是否為素數(shù),是的話輸出否則不輸出。

關(guān)于問題一我選擇用一個for循環(huán)來不斷輸出這個數(shù)進行比較,因為輸入的是一個范圍必定有最大值和最小值,我們可以以最小值為起始數(shù)開始循環(huán)輸出,每次加1,直到加到最大值停止輸出。

第二個問題就利用上面例子的思路就可以,把他包括到第一個for循環(huán)里面。

代碼如下

#include<stdio.h>//輸入一個范圍,求嘞個范圍里面的素數(shù)
int main()
{
	int m, n;
	scanf_s("%d %d", &m, &n);//輸入一個范圍,m為最小值,n為最大值
	for (int i = m; i < n + 1; i++)
	{
		int flag = 1;
		for (int k = 2; k < i ; k++)
		{
			if (i % k == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1 && i != 0 && i != 1)
			printf("%d ", i);
 
	}
	return 0;
}

最后代碼運行

?成功運行

3.總結(jié)

對于這個代碼我感覺唯一的難點在于對于break的理解,還有素數(shù)的概念,還有對于0與1不是素數(shù)的判斷上。

關(guān)于0與1不是素數(shù)我運用了相對暴力的做法,我選擇在最后flag的判斷里面加入對輸入的值的判斷,只有他不等于0或者1時才為素數(shù)否則不是。

原文鏈接:https://blog.csdn.net/weixin_64448174/article/details/122154110

欄目分類
最近更新