㈠ 用c語言如何判斷素數
素數又稱質數,所謂素數是指除了 1 和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被 2~16 的任一整數整除。
思路1、判斷一個整數m是否是素數,只需把 m 被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼 m 就是一個素數。
思路2、判斷方法還可以簡化。
m 不必被2~m-1之間的每一個整數去除,只需被2~√m之間的每一個整數去除就可以了。如果 m 不能被2~√m間任一整數整除,m必定是素數。例如判別17是是否為素數,只需使17被2~4之間的每一個整數去除,由於都不能整除,可以判定17是素數。
原因:因為如果m能被2~m-1之間任一整數整除,其二個因子必定有一個小於或等於√m,另一個大於或等於√m。
例如16能被2、4、8整除,16=2*8,2小於 4,8大於4,16=4*4,4=√16,因此只需判定在2~4之間有無因子即可。
兩種思路的代碼請看解析。
拓展資料:
素數(prime number)又稱質數,有無限個。素數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。
C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
網路——C語言
㈡ 用C語言如何判斷素數
按照如下步驟即可用C語言判斷素數:
1、首先打開visual C++ 6.0,然後點擊左上角的文件,再點擊新建。
㈢ c語言中如何求素數
你想下假如對8取餘8/2==4,5以後的數字能整除8嗎,為了提高效率,只要到4就行了,其實你理解錯了,哪是這一句是判斷方法啊,
㈣ c語言,如何判斷素數
break跳出的是離它最近的一個for循環,
break後面還要加 if(j>half)的內容是用來計算素數個數和素數和的,後面的計算沒有用到half,只是用來判斷的條件。
㈤ C語言素數怎麼表示
#include<stdio.h>
#include<math.h>
intmain()
{
intx,i,j=0,k;
for(x=101;x<=200;x++)
{
for(i=2,k=0;i<=sqrt(x);i++)
if(x%i==0)
{
k++;
break;
}
if(k==0)
{
printf("%d",x);
j++;
}
}
printf(" 100到200之間有%d個素數 ",j);
}
(5)c語言中如何素數擴展閱讀
100->200之間的素數的個數,以及所有的素數
#include<stdio.h>
#include<math.h>
intmain()
{
inta,m,k,i;
a=0;
for(i=101;i<=200;i++)
{
for(k=2;k<i;k++)
if(i%k==0)break;
if(k>=i)
a++;
}
printf("%d ",a);
for(i=101;i<=200;i++)
{
for(k=2;k<i;k++)
if(i%k==0)break;
if(k>=i)
a++;
if(k>=i)
printf("%d",i);
}
printf(" ");
return0;
}
㈥ C語言中怎麼判斷素數
首先分析需求,素數是指 除了1和它本身以外,不能被任何數整除的數。例如:1,3,5,7,11,13.。。。。。。。
例如輸入一個數m,判斷m是否是素數。我們可以用 m向小於m大於1的所有整數求余。如果有一個值是等於0,那麼,就能證明這個數是素數。
m %(2...(m-1)) == 0。
當然,更好的演算法是 m 向 (小於或等於 m的中位數) (大於1) 的所以數求余。
m%(2...(m/2)) == 0
如果你只想求實際代碼,當我沒說過。因為我這只是提供一個思路。
㈦ C語言中,怎麼限制條件可以表示素數
1、寫我們的頭文件和主函數。
㈧ C語言如何做素數
以下是素數的判斷:
# include <stdio.h>
# include <math.h>
main()
{
int i, k, t = 0;
float j;
printf("輸入大於1的自然數:\n");
scanf("%d", &i);
if (i == 2)
printf("這是一個素數!\n");
else if (i > 2)
{
j = sqrt(i);
for (k = 2; k <= j; k++)
{
if ((i%k==0))
t = 1;
}
if (t == 1)
printf("這不是一個素數!\n");
else
printf("這是一個素數!\n");
}
else printf("輸入錯誤!\n");
for(;;){};
}
滿意請採納!
㈨ C語言如何求素數
若x不是素數,
則
x=a*b,
我們可以要求
a<=b,
於是
a*a
<=
a*b,
也就是
a*a
<=
x
所以
a
<=
根號x.
如果在
for(a=2;
a*a<=x;
a++)
之內都找不到可以整除x的a
(也就是滿足
x%a==0
的a)
x就必定是素數了.
如果在
for(a=2;
a<=x;
a++)
之內找當然也可以,
只是浪費時間而已.
㈩ c語言中怎麼求素數
{for(j=2;i%j==1;j++)
{if(i%j==0)break;
}
以上這段代碼沒有起作用,有沒有都是一樣的結果。
就是求n的約數。
而不是素數。
如果你想求素數再追問吧。