導航:首頁 > 編程語言 > 求素數的c語言編程

求素數的c語言編程

發布時間:2022-02-10 04:46:20

『壹』 C語言編程、求100以內所有質素數

樓主大括弧都未能匹配,{有兩個,}有三個,編譯就通過不了的。
剛寫了份代碼,已調試通過,供樓主參考:
#include
<stdio.h>
main(void)
{
int
i,t;
for(i=1;
i<=100;
i++)
{
if(i
==
1)
continue;
if(i
==
2)
{
printf("%d,",i);
continue;
}
for(t=2;
t
<=
i/2;
t++)
{
if((i%t)
==
0)
break;
}
if(t
>
i/2)
{
printf("%d,",i);
}
}
printf("\n");
return
0;
}
輸出的結果為: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,
再說說樓主代碼中一些錯誤:
1.之前提到編譯上就不能通過。{和}個數未能匹配。
2.
if(100%i!=0)
break;
該語句的含義是100除以i的余數不等於0則跳出循環,當為1時,就已經跳出循環了。而且這對於質素的判斷是毫無意義的,可以刪除。
3.
for(t=1;t<=i;t++)
質數的判斷的話,t應該是從2開始計數的,否則i%1肯定是等於0的。應修改為for(t=2;
t<=i;
t++)。此外,這里可以參考我的代碼,t<=i/2即可,用以提高提升效率。
希望對樓主有所幫助。謝謝。

『貳』 一道關於求素數的c語言編程題目!!

#include<stdio.h>
void main()

{ int susu(int a);
int num,i,j;
printf("請輸入數:");
scanf("%d",&num);
i=num+1;
j=num-1;
while(!susu(i))
i=i+1;
while(!susu(j))
j=j-1;
if(i-num==num-j)
printf("%dand%d",i,j);
else if(i-num<num-j)
printf("%d",i);
else
printf("%d",j);
}

int susu(int a)
{ int i;
for(i=2;i<a;i++)
if(a%i==0)
break;
if(i<a)
return 0;
else
return 1;
}

『叄』 用C語言寫出求素數的編程

參考代碼:
int main(){
int num,m,n,d,c,priSum;
printf("Enter the Range Between m,n ");
scanf("%d %d", &m,&n);
for (num = n; num <= m; num++)
{
for(d = 2; d < num; d++)
{
if (num % d == 0){
continue;
}
}

if (d == num){
priSum += d;
c++;
}
}
printf("m~n之間的素數個數:%d,和 %d ",c,priSum);
return 0;
}

『肆』 C語言編程 求素數 求解釋

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void 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) //如果i>=k+1 說明一直循環到最後了,中間沒有可以除盡的數,這個數就是素數
printf("%d is a prime number\n",m);
else //相反就不是素數
printf("%d is not a prime number\n",m);

system("pause");
}

『伍』 C語言程序設計求素數

在程序的開頭加入#include<math.h>
下面是fun函數:
int fun(int mm,int b[MAX])
{
int i,mmm,n=0;
for(mmm=2;mmm<=mm;mmm++)
{
for(i=2;i<=sqrt(mmm);i++)
if(mmm%i==0) break;
if(i>sqrt(mmm))
{
b[n]=mmm;
n+=1;
}
}
return n;
}

分析:
如果mm<=1,外循環不啟動,直接返回n,此時n=0

如果mm=2,外循環啟動,內循環i<=sqrt(mmm)的條件不滿足,不啟動,內循環下面的判斷條件滿足,於是讓b[n]=mmm,n+=1,即找到一個符合條件的素數,此時b[n]既b[0]=2,然後n+=1,表示符合條件的素數的個數加1

同樣,當mm=3的時候,內循環由於條件不滿足,是不會執行的,但是在內循環下面的條件判斷都滿足,所以會把結果保存在n和b[n]裡面,這時,外循環要執行2次

當mm>3時,內循環也會啟動,但是要等內循環結束之後i的值滿足條件的才是素數,程序的可靠信完全可以放心

剛剛又重新分析了一遍代碼,稍微改了改,沒問題了

『陸』 求素數的C語言程序!

素數,也叫質數,就是指除了1和該數本身以外,不能被其他任何整數整除的正數。

#include<stdio.h>#include<math.h>voidmain(){intm,k,i,n=0;for(m=1;m<=200;m=m+2){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf("%5d",m);n=n+1;

『柒』 C語言編寫一個程序判斷一個數是否為素數急求

目的:判斷一個數是否為素數

#include<stdio.h>


intmain(void)


{


int m;


inti;


scanf("%d",&m);


for(i=2;i< m;i++) //2到(m-1)的數去除m


{


if(m%i==0)//判斷能否整除


break;

}

if(i== m)


printf("YES! ");


else


printf("No! ");


}

for循環的功能:

①若能整除,通過break跳出函數;

②若一直到m-1都不能整除,此時i再自增1到m,不滿足i< m跳出for循環,這時i= m。

(7)求素數的c語言編程擴展閱讀:


素數定理:



1、在一個大於1的數a和它的2倍之間(即區間(a,2a]中)必存在至少一個素數。



2、存在任意長度的素數等差數列。



3、一個偶數可以寫成兩個合數之和,其中每一個合數都最多隻有9個質因數。(挪威數學家布朗,1920年)。



4、一個偶數必定可以寫成一個質數加上一個合成數,其中合數的因子個數有上界。(瑞尼,1948年)。



5、一個偶數必定可以寫成一個質數加上一個最多由5個因子所組成的合成數。後來,有人簡稱這結果為(1+5)(中國潘承洞,1968年)。



6、一個充分大偶數必定可以寫成一個素數加上一個最多由2個質因子所組成的合成數。簡稱為(1+2)。

『捌』 用C語言編1到100之間的素數程序

程序及解釋如下:

首先判斷素數的演算法:用一個數分別去除以2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。

則有如下程序

{ int m,k,i;

for(m=1;m<=100;m=m+2) //m=m+2,因為偶數都不是素數,不用考慮,所以每次m+2.

{ k=sqrt(m) //先求這個數的平方跟

for(i=2;i<=k;i++) //然後用i(從2到k,即m的平方跟)去除m,

if(m%i==0) break; //如果能被整除, 則不是素數,break

if(i>=k+1) pritnf("%d",m); //如果i>k+1,則說明沒有數能整除m.則m是素數

}
}

(8)求素數的c語言編程擴展閱讀:

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

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

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

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

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

參考資料:網路 素數



『玖』 求素數的c語言程序

// 素數,也叫質數,就是指除了1和該數本身以外,不能被其他任何整數整除的正數#include<stdio.h>#include<math.h>void main(){ int m, k, i, n=0; for(m=1; m <= 200; m=m+2) { k = sqrt(m); for(i=2; i <= k; i++) if(m % i == 0) break; if(i >= k + 1) { printf("%5d",m); n = n + 1; } }}請放心使用,有問題的話請追問
滿意請及時採納,謝謝,採納後你將獲得5財富值。
你的採納將是我繼續努力幫助他人的最強動力!

『拾』 c語言編程求素數(也即是質數)

#include <stdio.h>
void main()
{ int x;
int i,f;
f=0;
scanf("%d",&x);
for(i=2;i<x/2+1;i++)
if(x%i==0) { f=1; break;}
else {f=0; continue;}
if(f) printf("%d不是素數\n",x);
else printf("%d是素數\n",x);
system("pause");
}
比之前的少一般的計算量

閱讀全文

與求素數的c語言編程相關的資料

熱點內容
cad2014教程pdf 瀏覽:199
怎麼遍歷伺服器同一類型的文件 瀏覽:436
惠普戰66畫圖編程 瀏覽:805
java面向對象作業 瀏覽:568
cad插件製作加密狗 瀏覽:923
cmd命令對話框 瀏覽:290
安卓應用怎麼常駐 瀏覽:676
安卓手機怎麼群發小費才不會被鎖 瀏覽:741
相機文件夾設置 瀏覽:855
centos7php怎麼用 瀏覽:119
查看linux操作系統版本的命令 瀏覽:382
收支預演算法怎麼做 瀏覽:875
模板如何上傳到伺服器 瀏覽:372
如何同步安卓信息到新ipad 瀏覽:364
騰訊雲輕量伺服器流量警告 瀏覽:503
u盤備份linux 瀏覽:120
高壓縮比活塞 瀏覽:92
壓縮彈簧標准件 瀏覽:25
linux統計個數命令 瀏覽:292
cad轉pdf居中 瀏覽:8