tft每日頭條

 > 生活

 > c語言如何判斷一個數是素數

c語言如何判斷一個數是素數

生活 更新时间:2025-01-31 01:29:14

練習C語言的第二天及第二題,我們來談一談對素數的判斷。

提到素數,想必大家都不陌生。

素數,就是質數,大于1的一個正整數,指的是它不能被除了1與它本身以外的其它自然數整除,給幾個最簡單的例子,2就是素數、3也是素數、5也是素數。

很明顯可以看到,這些數都不能被除了1與它本身以外的其它自然數整除。

那判斷能否整除的條件,自然就是取餘數。

比方以3為例,在1和它本身之間的數為2,而3除以2取餘為1,不為零,則說明它為素數。

反之,以6為例,6除以2取餘為0,則說明它不為素數。

c語言如何判斷一個數是素數(C語言實現素數判斷)1

那麼,在知道如何判斷素數的邏輯之後,我們就可以動手來寫代碼了。

在程序中,我們一般用mod來代表取餘數,也就是用%這個符号來代表。

首先,我們要輸入一個正整數N,也就是用到scanf。

之後對該正整數N進行判斷。

注意,這裡其實做的時候蠻有問題的,因為要判斷是否為素數,就要讓它對從1到它本身(開區間)進行整除,隻要有一個能整除,那就說明不是素數,反之,則為素數。

需要用到一個for循環來進行遍曆,再在for循環裡進行條件判斷。

如圖所示:

在最開始做的時候,诶,我按照自己的邏輯慢慢寫的,可還是産生了問題,為什麼會這樣呢,原因歸根結底在于for循環裡寫printf打印語句,執行了很多次,導緻最終輸出的結果多種多樣。

c語言如何判斷一個數是素數(C語言實現素數判斷)2

所以,為了避免這個問題,避免重複打印的問題,必須得把打印的語句給挪到for循環外面。

那挪到外面之後呢,我們就要對for循環中進行處理,可以用一個計數來代替,比方說當判斷不為素數的時候,計數加一,反之,則計數不變化。

之後再在for循環之外對這個計數進行判斷不就行了麼。

代碼如下所示:

#include<stdio.h> int main(){ int N = 0; int count = 0; scanf("%d", &N); while(N<=1){ printf("please input again\n"); scanf("%d", &N); } for(int i = 2; i < N; i ){ if(N%i == 0){ count ; } } if(count==0){ printf("it is a prime\n"); } else{ printf("it is not a prime\n"); } }

結果:

c語言如何判斷一個數是素數(C語言實現素數判斷)3

總結:總的來說,判斷是否為素數還是蠻簡單的,當然了,判斷是否為素數其實不一定就是用這種方法,也可以用其它方法,歡迎大家一起讨論。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved