當前位置:首頁 » 編程語言 » c語言找出素數

c語言找出素數

發布時間: 2022-06-07 04:48:31

c語言 輸出1到100之間的全部素數

有三種方法:

1、輸出1-100以內的素數:

(1)c語言找出素數擴展閱讀:

在這個小程序中主要用到的是for循環

for 循環語句的一般形式為:

for (表達式1; 表達式2; 表達式3)

{

語句;

}

需要注意的兩點:

1) 表達式1、表達式2和表達式3之間是用分號;隔開的,千萬不要寫成逗號。

2)for(表達式1;表達式2;表達式3)的後面千萬不要加分號,很多新手都會犯這種錯誤——會情不自禁地在後面加分號。

因為 for 循環只能控制到其後的一條語句,而在C語言中分號也是一個語句——空語句。所以如果在後面加個分號,那麼 for 循環就只能控制到這個分號,下面大括弧裡面的語句就不屬於 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(i=2;i<=(n-1);i++)
if(n%i==0)i在2到n-1之間任取一個數,如果n能被整除則不是素數,否則就是素數
二:for(i=2;i<n/2;i++)
if(n%i==0) /*i在2到n/2之間任取一個數,如果n能被整除則不是素數,否則就是素數

三:for(i=2;i<(n=sqrt(n));i++)
if(n%i==0) /*i在2到sqrt(n)之間任取一個數,如果n能被整除則不是素數,否則就是素數,在下省了下面的輸出步驟*/

/*在本程序中使用第三種方法來求解*/
#include <stdio.h>
#include <math.h>
int main(void)
{
int i; /*外循環*/
int j; /*內循環*/
int flag; /*素數標志,flag為1則此數為素數*/
flag = 0;
//int n;
i = 2;
while( i <= 100)
{
j = 2;
flag = 1; /*假設此數為素數*/
while(j <= (int) sqrt(float(i)))
{
if(0 == (i %j))
flag = 0; /*根據第三種演算法可知次數不為素數*/
j ++;
}
if(flag)
printf("%d\t",i);
i++;
}
printf("\n");
return 0;
}

④ c語言求素數的辦法只需解題思路

看你需不需要追求時間效率

是不是需要求超大的素數,int64 的有20位

甚至高精度情況下的素數,百位上千位

可以建立素數表來求

你仔細想想,任意一個整數都能分成幾個素數的乘積,只由素數只有自己

所以,對於每個我們需要判斷的數,只需要用素數表裡的數來除即可

若都不能整除,那此數一定也是素數,那就把它加入素數表內

一直求下去就行,一般來說10000個數的素數表就能判斷 int32內的素有數

因為素數表能判斷素數的范圍是 表內最大那個素數的平方

⑤ 如何求C語言素數

如果一個數是素數,只要判斷他是否能被2到這個數的開方之間的數整除就行了。

int flag=0;

if(m==2){ //先判斷是不是2

flag=1;

}

else{

for(int i=2;i<=sqrt(m);i++){

flag=1;

if(m%i==0){ //不是素數

flag=0;

break;

}

}

}

return (flag==1)?m:-1; //判斷是否為1,為1輸出m,否則輸出-1 ,-1表示不是素數

如果是求某個范圍的素數,可以連續調用這個方法,上面是常規的方法,還有更好的方法自己去查一下。

⑥ c語言求素數

【例】判斷m是否素數。
N-S流程圖:
#include
main()
{
int
m,i,k;
scanf(「%d」,&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
printf(「%d
is
a
prime
number\n」,m);
else
printf(「%d
is
not
a
prime
number\n」,m);
}
【例】求100至200間的全部素數。
#include
main()
{
int
m,i,k,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
{printf(「%d」,m);
n=n+1;}
if(n%5==0)printf(「\n」);
}
printf(「\n」);
}

⑦ c語言求素數的演算法

根據素數的性質,代碼設計如下:

設計一:判斷n是否能被1~n-1整除,不能整除為素數

#include<stdio.h>

int main()

{

int i, n;

scanf("%d", &n);

for (i = 2; i < n ; i++)

{

if (n%i == 0)

break;

}

if (i < n) printf("This is not a prime.");

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

return 0;

}

設計二:判斷n是否能被2~√n間的整數整除,不能整除為素數

#include<stdio.h>

#include<math.h>

int main()

{

int n,i;

double k;

scanf("%d", &n);

k = sqrt(n);

for (i = 2; i <= k;i++)

{

if (n%i == 0) break;

}

if (i <=k) printf("This is not a prime.");

else printf("This is a prime");

return 0;

}

(7)c語言找出素數擴展閱讀:

1.素數的定義是只能被1和他本身整除,1不是素數.因此要判斷一個數是否為素數.就要判斷它能不能被比他小的所有素數整除,這是一個演算法.(寫到演算法時,我只能寫出用它除以比他小的所有數,造成運算速度低下)

2.如果一個質數大於根號n,而n可以除盡它,那麼n必然也可以除盡一個更小的質數。由此可以得到一個法2較快的素數判斷演算法

熱點內容
有壓縮錢嗎 發布:2025-02-08 16:34:01 瀏覽:516
折紙手工解壓小方塊 發布:2025-02-08 16:32:45 瀏覽:253
php與運算符 發布:2025-02-08 16:32:45 瀏覽:762
如何用伺服器搭建懸賞平台 發布:2025-02-08 16:29:53 瀏覽:280
ftp伺服器破解版 發布:2025-02-08 16:28:41 瀏覽:523
mysql配置訪問ip 發布:2025-02-08 16:22:49 瀏覽:116
體表面積簡易演算法 發布:2025-02-08 16:18:04 瀏覽:687
存儲器的分級儲存是如何實現的 發布:2025-02-08 16:11:27 瀏覽:193
電腦怎麼看路由器密碼 發布:2025-02-08 16:10:13 瀏覽:401
匯編宏編譯 發布:2025-02-08 16:08:30 瀏覽:194