當前位置:首頁 » 編程語言 » c語言判斷是否為循環素數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言判斷是否為循環素數

發布時間: 2023-01-18 16:08:59

c語言 判定是否為素數

for(i=2;i<data;i++)
if(data%i!=0)
cnt++;//素數的個數
else
break;

你這樣肯定是不行的。
這樣只要找到一個不能整除的數,就判斷為了素數,比如data為9,你循環到2,9%2!=0,那麼你cnt++了

下面這個演算法是對的。
for(i=2;i<=half;i++)
if(data%i==0)
break;
//說明從2到data/2
中間存在一個可以整除data的數,那麼不是素數。
if(i>half)
{xx[n]=data;n++;} //i>half
說明循環到
data/2都沒找到一個可以整除的
數,那麼這個數就是素數了

㈡ c語言while判斷素數

#include<stdio.h>
intmain()
{
intn,i;
scanf("%d",&n);//輸入一個數
i=2;
while(i<n)//從2到n檢查是否有因數
{
if(n%i==0)//如果有因數則退出循環
break;
i++;
}
if(i>=n)//如果循環完整了,從2到n無因數,則是素數
printf("%d是素數 ",n);
else
printf("%d不是素數 ",n);//提前退出循環,i一定小於n
return0;
}

㈢ c語言for循環判斷素數是什麼

如下圖所示:

for循環是編程語言中一種循環語句,而循環語句由循環體及循環的判定條件兩部分組成,其表達式為:for(單次表達式;條件表達式;末尾循環體){中間循環體;}。

質數又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數(規定1既不是質數也不是合數)。

質數被利用在密碼學上,所謂的公鑰就是將想要傳遞的信息在編碼時加入質數,編碼之後傳送給收信人,任何人收到此信息後,若沒有此收信人所擁有的密鑰,則解密的過程中(實為尋找素數的過程),將會因為找質數的過程(分解質因數)過久,使即使取得信息也會無意義。

在汽車變速箱齒輪的設計上,相鄰的兩個大小齒輪齒數設計成質數,以增加兩齒輪內兩個相同的齒相遇嚙合次數的最小公倍數,可增強耐用度減少故障。

在害蟲的生物生長周期與殺蟲劑使用之間的關繫上,殺蟲劑的質數次數的使用也得到了證明。實驗表明,質數次數地使用殺蟲劑是最合理的:都是使用在害蟲繁殖的高潮期,而且害蟲很難產生抗葯性。

以質數形式無規律變化的導彈和魚雷可以使敵人不易攔截。

多數生物的生命周期也是質數(單位為年),這樣可以最大程度地減少碰見天敵的機會。

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

判斷一個整數m是否是素數,只需把m被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼m就是一個素數。思路1)的代碼:

#include <stdio.h>

int main(){

int a=0; // 素數的個數

int num=0; // 輸入的整數

printf("輸入一個整數:");

scanf("%d",&num);

for(int i=2;i<num;i++){if(num%i==0){a++; // 素數個數加1}}

if(a==0){printf("%d是素數。 ", num);}else{printf("%d不是素數。 ", num);}return 0;}

㈤ c語言for循環判斷素數是什麼

c語言for循環判斷素數是質數。


質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。換句話說,只有兩個正因數(1和自己)的自然數即為素數。比1大但不是素數的數稱為合數。1和0既非素數也非合數。

假設循環為for (i=2;i<=x;i++)如果輸入x=7,i=2,2<7,然後i+1為3,之後一直執行到i=7。

7<=7可以執行,i7%7==0直接執行break退出循環,執行下一句,此時i不再加一(已退出循環),所以i<=x這樣也是可以的。當然如果是for (i=2;i<=x-1;i++)也是可以的,這個就不解釋了。

之所以用i <=x-1,因為這是一般人的想法,比較通俗易懂。i<=x這個就不好想了。

㈥ C語言循環問題 編程判斷一個數是不是素數

2<5然而沒有滿足if(n%i==0)的判斷語句。所以他會繼續執行循環。這個循環只會在有數可以把n整除的時候break,中止掉。你的判斷是從2開始的。也就是說真正的素數只有在i加到n本身是才能中止掉。這樣的話滿足素數的定義,所以i==n的時候就是素數。不然會在循環中i還未達到n時break掉,輸出不是素數。這代碼寫的有簡單又直白。
你只要吧這個子函數聲明下 放到主函數里,傳入個要判斷的數n就可以了。
這種判斷素數的方法效率太低了點,你去看看一些基礎教C語言的書里講判斷素數的一些方法也這個優化點。

㈦ C語言中怎麼判斷一個數是否是素數

設置一個循環,用一個2至這個數的平方根(取較大整數)數去除這個數,不存在任意一數可整除,則這個數就是素數,否則不是。如:

for(i=2;i*i<=n;i++)
if(n%i==0)
break;
if(i*i>=n)
printf("%d是素數 ",n);
else
printf("%d不是素數 ",n);

㈧ 關於C語言判斷素數問題

i循環的循環條件包含i==k的情況,而循環後面的if語句也包含i==k的情況,矛盾了,建議改成if ( i>k ) printf("是素數");

㈨ C語言循環問題 編程判斷一個數是不是素數

解釋如下:
#include"stdio.h"
#include"math.h"
main()
{
int
i,k,m;
//定義三個整形變數
scanf("%d",&i);
//輸入i的值
k=sqrt(i);
//把輸入的i的值的平方根的值賦值給k
for(m=2;m<=k;m++)
//從2開始進入循環,判斷從2到k之間的數是否能被i整除
if(i%m==0)
//如果能被2整除則用break跳出循環
break;
if(m>k)
//判斷通過循環後的m的值是否比k大,如果比k大則i是素數
printf("%d是素數
",i);
else
//如果不是則i不是素數
printf("%d不是素數",i);
getch();
}

㈩ 用C語言循環結構編寫:輸入一個數,判斷該數是否為素數。

#include&lt;stdio.h&gt;

int main()

{

int n;

int i;

scanf("%d",&n);

if(n&lt;2)

printf("This is not a prime. ");

else if(n==2)

printf("This is a prime. ");

else

{

for(i=2;i&lt;n;i++)

{

if(n%i==0)

break;

}

if(i==n)

printf("This is a prime. ");

else

printf("This is not a prime. ");

}

return 0;

}

(10)c語言判斷是否為循環素數擴展閱讀:

scanf()用法:

輸出的值只是空格前面的字元是因為scanf函數的輸入格式錯誤,輸入參數的變數前需要加&。

scanf("%s",s);改為scanf("%s",&s);

scanf的用法是:scanf("格式控制字元串",輸入參數一,輸入參數二);

格式控制字元串包含:格式控制說明,普通字元。

1、格式控制字元串表示輸入的格式,(int型用%d,float用%f,double型用%lf)

2、普通字元:在輸出數據的時候,按照原樣輸出的字元,如:"fahr=%d,celsius=%d "中的fahr=,celsius=。

3、輸入的參數是變數的地址,所以要在變數前面加&。