最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言中判斷素?cái)?shù)(求素?cái)?shù))的思路與方法實(shí)例

 更新時(shí)間:2022年03月10日 11:58:09   作者:烏龜蓋瑞  
計(jì)算機(jī)或者相關(guān)專業(yè)基本上大一新生開始學(xué)編程都會(huì)接觸的一個(gè)問(wèn)題就是判斷質(zhì)數(shù),下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中判斷素?cái)?shù)(求素?cái)?shù))的思路與方法,需要的朋友可以參考下

前言

素?cái)?shù)又稱質(zhì)數(shù)。所謂素?cái)?shù)是指除了 1 和它本身以外,不能被任何整數(shù)整除的數(shù),例如17就是素?cái)?shù),因?yàn)樗荒鼙?2~16 的任一整數(shù)整除。

思路1):因此判斷一個(gè)整數(shù)m是否是素?cái)?shù),只需把 m 被 2 ~ m-1 之間的每一個(gè)整數(shù)去除,如果都不能被整除,那么 m 就是一個(gè)素?cái)?shù)。

思路2):判斷方法還可以簡(jiǎn)化。m 不必被 2 ~ m-1 之間的每一個(gè)整數(shù)去除,只需被 2 ~  之間的每一個(gè)整數(shù)去除就可以了。如果 m 不能被 2 ~  間任一整數(shù)整除,m 必定是素?cái)?shù)。例如判別 17 是是否為素?cái)?shù),只需使 17 被 2~4 之間的每一個(gè)整數(shù)去除,由于都不能整除,可以判定 17 是素?cái)?shù)。

原因:因?yàn)槿绻?m 能被 2 ~ m-1 之間任一整數(shù)整除,其二個(gè)因子必定有一個(gè)小于或等于 ,另一個(gè)大于或等于 。例如 16 能被 2、4、8 整除,16=2*8,2 小于 4,8 大于 4,16=4*4,4=√16,因此只需判定在 2~4 之間有無(wú)因子即可。

思路1實(shí)現(xiàn):

#include <stdio.h>
int main() {
    int n;
    printf("請(qǐng)輸入一個(gè)1-100之間的整數(shù):\n");
    scanf("%d", &n);
 
    int m = 0;
    for (int i = 2; i < n; i++ ) {
        if(n % i  == 0) {
            m++;
        }
    }
    if (m == 0) {
        printf("%d是素?cái)?shù)\n", n);
    } else {
        printf("%d不是素?cái)?shù)\n", n);
    }
    return 0;
}

思路2實(shí)現(xiàn):

#include <stdio.h>
#include <math.h>
int main() {
    int n;
    printf("請(qǐng)輸入一個(gè)1-100之間的整數(shù):\n");
    scanf("%d", &n);
 
    int i = 0;
    int q = sqrt(n);
    for (i = 2; i <= q; i++ ) {
        if(n % i  == 0) {
            break;
        }
    }
    if (i > q) {
        printf("%d是素?cái)?shù)\n", n);
    } else {
        printf("%d不是素?cái)?shù)\n", n);
    }
 
    return 0;
}

《C與指針》4.14 - 2:

打印1~100之間所有質(zhì)數(shù):

#include <stdio.h>
int main() {
    int num, divisor;
    printf("1, 2");
    for (num = 3; num <= 100; num += 2) {
        for(divisor = 3; divisor < num; divisor +=2 ) {
            if (num % divisor == 0) {
                break;
            }
        }
 
        if(divisor >= num) {
            printf(", %d", num);
        }
    }
    printf("\n");
    return 0;
}

結(jié)果:

1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97

補(bǔ)充:判斷素?cái)?shù)的4種方法實(shí)例

#include<stdio.h>
#include<math.h>
//方法一:從1-n挨個(gè)判斷;
 bool isPrimel_1(int n) 
{	for(int i=2;i<n;i++)
	if(n%i==0)
	return false;
	return true;
}

//方法二: 將被判斷數(shù)n,進(jìn)行開方作為判斷結(jié)束的條件,
//因?yàn)殚_方后的數(shù),是n的最大因子,最大因子之后的數(shù)對(duì)判斷該數(shù)是否是素?cái)?shù)沒(méi)有意義。

bool isPrimel_2(int n)  
{	for(int i=2;i<sqrt(n);i++)
	if(n%i==0)
	return false;
	return true;
}

//方法三: 只需要判斷到該數(shù)的一半即可,如果超過(guò)它本身的一半,
//進(jìn)行求余的結(jié)果將永遠(yuǎn)不會(huì)為0,除非是該數(shù)對(duì)該數(shù)的求余。

bool isPrimel_3(int n)  
{   int i;
    if(n%2==0)
    return 0;
    for(i=3;i=n/2;i+=2){
	 if(n%i==0)
     return 0;
     return 1;
}
}

 //方法四:從3-n,只判斷奇數(shù),先對(duì)一個(gè)數(shù)進(jìn)行奇偶判斷,若是奇數(shù),
 //只對(duì)從3到它本身的奇數(shù)進(jìn)行求余計(jì)算,同理若是偶數(shù),一定不是素?cái)?shù)。
 
bool isPrimel_4(int n)
{   int i,j=1;
    if(n%2==0)
    return 0;
    else{
    for(i=3;i<=n;i=i+2){
	 if(n%i==0)	
	 j=i;
	 break;
	}
}
   if(j==n)
   return 0;
   return 1;
}

int  main()
{
	int n;
	printf("請(qǐng)輸入一個(gè)數(shù):");
	scanf("%d",&n); 
	printf("%d,%d,%d,%d\n",isPrimel_1(n),isPrimel_2(n),isPrimel_3(n),isPrimel_4(n));
	return 0;
}

總結(jié)

到此這篇關(guān)于C語(yǔ)言中判斷素?cái)?shù)(求素?cái)?shù))的文章就介紹到這了,更多相關(guān)C語(yǔ)言判斷素?cái)?shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ move()函數(shù)案例詳解

    C++ move()函數(shù)案例詳解

    這篇文章主要介紹了C++ move()函數(shù)案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C語(yǔ)言之實(shí)現(xiàn)控制臺(tái)光標(biāo)隨意移動(dòng)的實(shí)例代碼

    C語(yǔ)言之實(shí)現(xiàn)控制臺(tái)光標(biāo)隨意移動(dòng)的實(shí)例代碼

    下面小編就為大家?guī)?lái)一篇C語(yǔ)言之實(shí)現(xiàn)控制臺(tái)光標(biāo)隨意移動(dòng)的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • C語(yǔ)言中函數(shù)參數(shù)的入棧順序詳解及實(shí)例

    C語(yǔ)言中函數(shù)參數(shù)的入棧順序詳解及實(shí)例

    這篇文章主要介紹了C語(yǔ)言中函數(shù)參數(shù)的入棧順序詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 使用C語(yǔ)言提取子字符串及判斷對(duì)稱子字符串最大長(zhǎng)度

    使用C語(yǔ)言提取子字符串及判斷對(duì)稱子字符串最大長(zhǎng)度

    這篇文章主要介紹了使用C語(yǔ)言提取子字符串及判斷對(duì)稱子字符串最大長(zhǎng)度,文后附送了一道ACM競(jìng)賽題目,需要的朋友可以參考下
    2015-08-08
  • C語(yǔ)言深入淺出講解順序表的實(shí)現(xiàn)

    C語(yǔ)言深入淺出講解順序表的實(shí)現(xiàn)

    線性表是最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),而順序表又是最簡(jiǎn)單的線性表,其基本思想是用一段地址連續(xù)的儲(chǔ)存單元依次存儲(chǔ)線性表的數(shù)據(jù)元素,比如我們常用的一維數(shù)組,下面代碼實(shí)現(xiàn)了順序表的定義以及基本操作
    2022-04-04
  • VC中刪除類的兩種操作方法

    VC中刪除類的兩種操作方法

    這篇文章主要介紹了VC中刪除類的兩種操作方法,較為詳細(xì)的描述了在VC中實(shí)現(xiàn)刪除類的具體步驟,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • C++異步數(shù)據(jù)交換實(shí)現(xiàn)方法介紹

    C++異步數(shù)據(jù)交換實(shí)現(xiàn)方法介紹

    這篇文章主要介紹了C++異步數(shù)據(jù)交換實(shí)現(xiàn)方法,異步數(shù)據(jù)交換,除了阻塞函數(shù) send() 和 recv() 之外,Boost.MPI 還支持與成員函數(shù) isend() 和 irecv() 的異步數(shù)據(jù)交換
    2022-11-11
  • 詳解C/C++內(nèi)存區(qū)域劃分(簡(jiǎn)而易懂)

    詳解C/C++內(nèi)存區(qū)域劃分(簡(jiǎn)而易懂)

    C/C++中,內(nèi)存主要分為、堆、棧、全局/靜態(tài)存儲(chǔ)區(qū)和常量存儲(chǔ)區(qū)。本文重點(diǎn)給大家介紹C/C++內(nèi)存區(qū)域劃分的相關(guān)知識(shí),需要的朋友參考下吧
    2021-06-06
  • 淺談C++中的引用和指針

    淺談C++中的引用和指針

    這篇文章主要介紹了淺談C++中的引用和指針,C++允許為已定義的變量再起一個(gè)新的別名,稱為變量的引用名,引用名看起來(lái)像是一個(gè)變量名,但它是一種特殊變量,稱為引用變量,或簡(jiǎn)稱為引用,需要的朋友可以參考下
    2023-08-08
  • Qt學(xué)習(xí)之容器的使用詳解

    Qt學(xué)習(xí)之容器的使用詳解

    Qt容器主要優(yōu)點(diǎn)就是在所有的平臺(tái)上的運(yùn)行都表現(xiàn)的一致,并且它們都是隱含共享的,這篇文章就來(lái)和大家講講Qt中容器的具體用法吧,希望對(duì)大家有所幫助
    2023-03-03

最新評(píng)論

永靖县| 松原市| 普陀区| 凭祥市| 高雄县| 富川| 九龙县| 长春市| 滨海县| 获嘉县| 梅州市| 鄂伦春自治旗| 萍乡市| 尼木县| 碌曲县| 南木林县| 平陆县| 冀州市| 兴安县| 沙坪坝区| 岳普湖县| 清河县| 民丰县| 万源市| 贵南县| 清新县| 清河县| 荥阳市| 长乐市| 土默特右旗| 赞皇县| 江陵县| 女性| 安康市| 龙州县| 射洪县| 贡嘎县| 乳山市| 道孚县| 临猗县| 丰顺县|