国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言判斷一個數(shù)是否為素數(shù)的三種方法(詳細)

這篇具有很好參考價值的文章主要介紹了C語言判斷一個數(shù)是否為素數(shù)的三種方法(詳細)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? ? ? ? ?前言

? ? ? ???今天我們來使用C語言來實現(xiàn)判斷一個數(shù)是否為素數(shù),首先我們需要了解到素數(shù)的概念,素數(shù)就是只能被1和它本身整除的數(shù)。

? ? ? ? 第一種方法

???

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
    int main()
{
	int i;int n;
	printf("請輸入一個整數(shù):>");
	//輸入數(shù)字
	scanf("%d", &n);
	//判斷是否為素數(shù)
	if (n <= 1)
	{
		printf("%d不是素數(shù)\n", n);
	}
	else 
	{
		int flag = 1;//設(shè)置flag= 1,假設(shè)n是素數(shù)
		for (i = 2;i <= n/2;i++)
		{
			if (n % i == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
			printf("%d是素數(shù)\n", n);
		else
			printf("%d不是素數(shù)\n", n);
	}
	
	return 0;
}

? ? ? ? 這是第一種代碼,我們來分析一下,首先創(chuàng)建變量i和n,這里我們i用于循環(huán),n用來存放我們輸入的數(shù)字。之后我們設(shè)置一個if語句來判斷輸入的數(shù)是否小于1,如果小于1的話直接輸出不是素數(shù)。

????????之后我們設(shè)置一個flag,這個flag的作用是假設(shè)n是素數(shù),這里的flag是一個輔助變量,它用于追蹤當前檢查的數(shù)n,看它是否是一個素數(shù)。

? ? ? ? 之后使用一個for循環(huán)來讓n試除i,當n可以被i整除的時候,我們發(fā)現(xiàn)這個數(shù)n不是素數(shù)flag不成立,我們給flag賦值為0,之后跳出循環(huán)進行判斷,進入else語句,輸出n不是素數(shù)。

? ? ? ? 這里要注意的一點是我們試除的時候,只需要除到n/2,如果我們一個數(shù)可以被一個n/2的數(shù)整除,那么我們就沒有必要再去重復(fù)的試除它之后的數(shù)。

? ? ? ? 第二種方法了,對程序進行優(yōu)化

????????

int main()
{
	int i;int n;
	printf("請輸入一個整數(shù):>");
	//輸入數(shù)字
	scanf("%d", &n);
	//判斷是否為素數(shù)
	if (n <= 1)
	{
		printf("%d不是素數(shù)\n", n);
	}
	else 
	{
		int flag = 1;//設(shè)置flag= 1,假設(shè)n是素數(shù)
		for (i = 2;i <= sqrt(n);i++)
		{
			if (n % i == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
			printf("%d是素數(shù)\n", n);
		else
			printf("%d不是素數(shù)\n", n);
	}
	
	return 0;
}

? ? ? ? 在這個代碼中,我們使用了給n開平方的方式來使我們用來試除的n值最簡,一個數(shù)如果不能被它開平方之后得到的這個數(shù)之前的數(shù)整除的話,那么它就一定是素數(shù)了。

????????簡單舉個例子,sqrt(17)如果開平方的話得到的數(shù)是4.1左右,如果我們試除2-4之間的數(shù)之后,發(fā)現(xiàn)都不可以被n整除,那么n就是素數(shù)。

? ? ? ? sqrt是數(shù)學函數(shù),記得調(diào)用頭文件<math.h>哦

? ? ? ? 最后一種方法是使用函數(shù)調(diào)用的方式

????????

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int infer_prime(int n)
{
	int i;
	if (n <= 1)
	{
		return 0;
	}
	else
	{
		for (i = 2;i <= sqrt(n);i++)
		{
			if (n % i == 0)
			{
				return 0;
			}

		}
		return 1;
	}
}
int main()
{
	//輸入一個數(shù)
	int p = 0;
	printf("請輸入一個數(shù)字");
	scanf("%d", &p);
	//通過函數(shù)判斷是否為素數(shù)
	if (infer_prime(p))
		printf("%d這個數(shù)字是素數(shù)\n", p);
	else
		printf("%d這個數(shù)字不是素數(shù)\n", p);
	//輸出是素數(shù)或者不是素數(shù)
	return 0;
}

? ? ? ? 我們最后使用函數(shù)調(diào)用的方式來判斷n是否是素數(shù),我們設(shè)置一個函數(shù),函數(shù)名為infer_prime(當然這個函數(shù)名也可以設(shè)置為其他,看自己設(shè)置函數(shù)名的習慣),這次在主函數(shù)中我們首先設(shè)置變量p存放我們的函數(shù),這里我們使用if語句來判斷函數(shù)是否為真,如果真(if語句判斷為1)那么我們就判斷p是一個素數(shù),如果假(if語句判斷為0),那么p就不是素數(shù)。

? ? ? ? 我們進入函數(shù),函數(shù)類型為整型,我們形參設(shè)為n,用來接受p的值,之后設(shè)置一個i用來試除n,之后就和我們之前一樣了,使用一個if語句排除小于1的數(shù)對程序的影響,之后試除到n開平方,不一樣的就是我們這里如果判斷出n是素數(shù)的話,我們直接給讓返回值為1(return 1),到我們主函數(shù)的if語句中,判斷為真(if(1)),就可以直接輸出n是素數(shù)。

? ? ? ? 希望對大家有幫助,如果有任何疑惑可以私信博主或者留言評論區(qū),看到會馬上回復(fù)哦,程序也有不足之處,希望如果有兄弟發(fā)現(xiàn)問題可以積極指正,博主主打一個聽勸??!文章來源地址http://www.zghlxwxcb.cn/news/detail-857576.html

到了這里,關(guān)于C語言判斷一個數(shù)是否為素數(shù)的三種方法(詳細)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C語言素數(shù)(質(zhì)數(shù))判斷的三種方法

    本文介紹了判斷素數(shù)的3種方法,從素數(shù)的概念分析,確定找到素數(shù)的幾個必要條件,設(shè)計思路,并將代碼進行優(yōu)化。此外,還使用自定義函數(shù)的形式將同樣的思路進行實現(xiàn)。 素數(shù),就是僅能被自身和1整除的數(shù)字。 首先我們可以提取出判斷素數(shù)的三個基本條件: 素數(shù)是整數(shù)

    2024年02月04日
    瀏覽(18)
  • 【C語言】判斷一個數(shù)是否為素數(shù)

    目錄 判斷一個數(shù)是否為素數(shù) 方法1? 方法2? ? 2.1 2.2 進階:輸出區(qū)間長度內(nèi)的素數(shù) “ 素數(shù)和質(zhì)數(shù)沒有區(qū)別 ,素數(shù)又叫質(zhì)數(shù),質(zhì)數(shù)是指在大于1的自然數(shù)中,除了1和它本身以外,不能被其他自然數(shù)整除的數(shù)。比1大但不是素數(shù)的數(shù)稱為合數(shù),1和0既非素數(shù)也非合數(shù)。” 所謂素數(shù)

    2024年02月04日
    瀏覽(20)
  • 【C語言】判斷一個數(shù)是否為素數(shù)(素數(shù)求解的N種境界)

    【C語言】判斷一個數(shù)是否為素數(shù)(素數(shù)求解的N種境界)

    這是一篇關(guān)于素數(shù)的介紹,以及介紹判斷是否為素數(shù)的一篇博客,我會將方法一一列舉出來方便大家理解和觀看。 ?? 我們在C語言的學習中會遇到各種各樣的數(shù)學問題,每次遇到這些數(shù)學問題時,我們一定要學習如何用代碼的方法表示出來,加深理解,并且強化自己的能力,

    2024年02月06日
    瀏覽(37)
  • C語言--編寫函數(shù)判斷一個數(shù)是否為素數(shù),在主函數(shù)中調(diào)用該函數(shù)輸出100以內(nèi)的全部素數(shù)。
  • 【Python】判斷素數(shù)的三種方法以及for-else語句的介紹

    【Python】判斷素數(shù)的三種方法以及for-else語句的介紹

    ? 輸入一個數(shù),如果是素數(shù)就輸出\\\"Yes\\\",否則輸出\\\"No\\\" 自定義函數(shù) is_prime() ,首先排除1,然后再對該數(shù)之前的數(shù)進行枚舉,當遇到能被當前的數(shù)整除時返回False,若沒有數(shù)能將其整除意味著這個數(shù)是素數(shù),返回True。然后對返回的結(jié)果進行判斷從而輸出\\\"Yes\\\"或\\\"No\\\" 當然,我們可以

    2024年02月04日
    瀏覽(19)
  • 判斷一個數(shù)是否是素數(shù)(Java版)

    目錄 素數(shù)的定義 求解素數(shù) 素數(shù)判定法1: 遍歷從2到n-1的所有數(shù)字,判斷是否有可以被n整除的數(shù),如果沒有,則為素數(shù)。 優(yōu)化法2: 判定的范圍改為[2 -,n/2]。當 in/2 時,則判定為素數(shù)。 優(yōu)化法3: 在Java中判定素數(shù)的范圍也可以到sqrt(n),(對n開平方)。對應(yīng)的函數(shù)為:Math.sqrt(n

    2024年02月16日
    瀏覽(15)
  • python_輸入任意一個數(shù),判斷是否是素數(shù)

    python_輸入任意一個數(shù),判斷是否是素數(shù)

    看了一下其他答案要不是格式不對run不出來,要不就是輸入項驗證不全,希望答案對大家有用。?

    2023年04月09日
    瀏覽(23)
  • 判斷字符串是否為回文的三種常用編程語言實現(xiàn)

    引言:回文是一種具有鏡像對稱性的字符串,即它從左到右讀和從右到左讀是相同的。回文可以在文學、語言學、數(shù)學、計算機科學等領(lǐng)域中得到廣泛應(yīng)用。在計算機科學中,判斷一個字符串是否為回文是一項基本的算法挑戰(zhàn)。在本文中,我們將介紹三種常見的編程語言中用

    2024年02月03日
    瀏覽(22)
  • Python 判斷列表里是否有重復(fù)元素的三種方法

    一、用 set 方法去重后與原列表長度比較 二、用 append 的方式把原列表中的元素添加到一個新列表,確保新列表里不存在重復(fù)的元素,然后比較兩個列表 三、用 fromkeys 的方法創(chuàng)建一個字典,因為字典的鍵會自動去重,所以可以比較字典和原列表的長度,跟方法一很像

    2024年02月11日
    瀏覽(24)
  • [超詳細]3種方法判斷一個數(shù)是否為質(zhì)數(shù)(Python)

    (發(fā)現(xiàn)好多博客對第三種進階方法說的不明白,至少我是沒完全看明白。后面結(jié)合自己的理解應(yīng)該算是弄懂了,供大家參考,歡迎糾正。) 方法一:最暴力,最簡單,也最耗時O(n) 思想:由 素數(shù)的定義:一個數(shù)t,除了1和它本身,若沒有其他因數(shù),那么就稱其為素數(shù)。 因此循環(huán)

    2024年04月08日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包