當前位置:首頁 » 編程軟體 » 編程求質數

編程求質數

發布時間: 2022-08-24 10:04:22

① 用c語言編寫求質數的程序

//我分別寫出了求素數和判斷素數的程序
/*
//判斷一個數是否為素數
#include<stdio.h>
#include<math.h>

int isprime(int);
void main()
{
int inumber;

printf("請輸入一個非負整數: ");
scanf("%d",&inumber);
if(isprime(inumber))
printf("%d是素數!\n",inumber);
else
printf("%d不是素數!\n",inumber);
}
int isprime(int a)
{
int i;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)
return 0;
return 1;
}
*/
/*****************************************************/

//求某個正整數以內的素數
#include"stdio.h"
#include"math.h"
int main(void)
{
int count,i,m,n,num;
printf("請輸入所求范圍(正整數): ");
scanf("%d",&num);
count=0;//count記錄素數的個數
printf("%d以內的素數為:\n",num);
for(m=2;m<=num;m++)
{
n=sqrt(m);
for(i=2;i<=n;i++)
{
if(m%i==0)
break;
}
if(i>n)//如果m是素數
{
printf("%6d",m);
count++;
if(count%10==0)//count為10的倍數時換行
printf("\n");
}
}
printf("\n");

return 0;
}

② C語言編程,1到100,求質數,誰能幫幫我啊,網上找的,不完整,看不懂,毫無思路

#include<stdio.h>
#include<math.h>
intf(intn)
{
inti;
//素數標准:只能被自己和1整除的數字
for(i=2;i<=sqrt(n);i++)
{
//能被其他數整除,就不是素數
if(n%i==0)
return0;
}
return1;
}
intmain()
{
inti,k=0;
printf("1至100之間的素數從小到大分別為: ");
for(i=2;i<=100;i++)
{
//依次判斷所有數字是否為素數
if(f(i))
{
k++;
printf("%d ",i);
}
}
printf(" 總共%d個。 ",k);
return0;
}

③ C語言求質數問題

#include<stdio.h>

#include<math.h>

intmain()

{

intm,n,c=0,i,t,j;

scanf("%d%d",&m,&n);

if(m==0&&n==0)//<===========

{

return0;

}

elseif(m>n)

{

t=m,m=n,n=t;

}

//else

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

{

for(j=2;j*j<=i;j++)//<============

{

if(i%j==0)

break;

}
if(j*j>i)//<==========

{

printf("%d",i);

c++;

if(c==10)
{

printf(" ");

c=0;
}

}

}



return0;

}

④ c語言求100以內的質數

以我來看我覺得兩個for循環都有問題。
首先第一個for循環應該錯了。應該是i < 100。因為是求100以內的,所以要循環到100。
這個程序就是利用for循環讓i從2遍歷到99.然後利用j找出了1和本身之外i的因數。
那麼第二個for循環問題就來了,我們尋找i的因數的時候,並不需要從2一直找到i本身,只要找到i的一半就可以停止了。舉個簡單例子,比如我們要找98的因數,那麼我們只需要找到98÷2 = 49就行了,因為49之後的數字是肯定不能整除98的。同理大於i/2之後的數字是肯定不能夠整除i的。所以第二個for的條件應該是j <= (i/2)而不是j。下面就簡單了。如果j是i的因數,那麼i%j=0. 就直接continue(順便提一句這里是不能用break的,因為break是直接跳出了for循環,相當於直接結束了整個for循環,而此時還沒有遍歷到100的,應該用continue,continue就是結束當前循環並且執行i++繼續下一輪循環)繼續循環而不用執行print語句(這個時候代表i不是質數,因為除了1和它本身還有j這個因數。)。同理,如果從2到i/2都沒有i的因數,那麼就說明i沒有其他因數,也就是質數了,所以print輸出i。
另外補充一下:
i/j是求i除以j的商,比如11 / 3 = 3; 6 / 3 = 2
i%j是求i除以j的余,比如11 % 3 = 2; 6 % 3 = 0。

⑤ 編程求質數

#include
#include
void
main()
{
int
m,i,k;
scanf("%d",&m);
k=sqrt(m);
for
(i=2;i
if(m%i==0)break;
if(i>k)printf("%d
is
a
prime
number\n",m);
else
printf("%d
is
not
a
prime
number\n",m);
}
此程序判斷一個大於等於2的整數是質數還是合數。
要軟體10分鍾就可以做一個,就是帶窗口程序的,不過馬上要去實驗室了。
再給20分晚上就幫你做。

⑥ c語言求質數

有救!有救!
你的思路挺好的,就是編程的時候思路不清晰,沒有周全考慮。
這是改後的代碼
#include
"stdio.h"
#include
"conio.h"
main()
{
int
m,n,i,num;
int
p[100];
long
s;
s=2;
m=1;
n=1;
num=1;
p[1]=2
;
for
(;num<100;num++)/*這里的分號應該是你筆誤吧O(∩_∩)O*/
{for
(i=1,n=2;;)
/*這里n=2而非m估計也是你筆誤?*/
{m=p[i]
;
if
(m>s/2)
break;
else
if(m*n<s)
n++;
else
if(m*n==s)
{s++;i=1;n=2;}/*這里*/
else
if(m*n>s)
{i++;n=2;}/*和這里,仔細想一想,當嘗試一個新的數字或嘗試一個新的質數時,是不是要把計數變數初始化?*/
/*編程的時候不要想當然,要通盤考慮,每個變數是否都做了妥善的處理*/
}
p[num]=s;/*你要用質數表,怎麼能不記錄質數表呢^o^*/
printf
("p%d=%ld\n",num,s);
s++;
}
getch();
}
你的程序運用質數表這點很好,但是你的程序還沒發揮到最高效率。里邊有一些無用的判斷和賦值,而且沒有利用mod運算,使程序既復雜又低效。
我覺得還是用標準的求質數演算法比較好,到處都有,不再說了。

⑦ 如何用編程尋找質數

以下的程序用來尋找n以內的所有質數:

#include<stdio.h>

int isprime(int n)

{ for(int i=2; i*i<=n; i++)

if(n%i==0)return 0;

return n>1;

}

int main()

{ int n,i,k=0;

scanf("%d",&n);

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

if(isprime(i))

{ printf("%d ",i);

if(++k%10==0)printf(" ");

}

printf(" ");

return 0;

}

⑧ 輸出100以內的質數,用c語言編寫

#include <stdio.h>

int main(int argc, char **argv)

{

int x;

for (x=1;x<100;x++){

int i;

int isprime=1;//表示x是素數。

for(i=2;i<x;i++){

if (x%i==0){

isprime=0;

break;

}

}

if (isprime==1){

printf("%d",x);

}

}

return 0;

}

C語言編程計算注意事項:

1、編程時注意符號大小寫。

2、main函數要有返回值

3、C語言中定義數組,要定義出大小,數組的大小隻能是常量不能是變數。

4、%md ; %0md ;%.mf;(以m位進行右對齊輸出,不足m位空格補上;以m位進行右對齊輸出。不足m位用0補上;保留m位小數)

⑨ 求"求素數的C語言程序"

#include <stdio.h>

int main()

{

int a=0;

int num=0;

int i;

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

scanf("%d",&num);

for(i=2;i<num;i++){

if(num%i==0){

a++;

}

}

if(a==0){

printf("%d是素數。 ", num);

}else{

printf("%d不是素數。 ", num);

}

return 0;

}

(9)編程求質數擴展閱讀:

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

基本演算法:若 k%m==0 則說明 k 不是素數。

判斷整數n是否為素數——採用枚舉法求解。

採用枚舉演算法解題的基本思路:

(1)確定枚舉對象、枚舉范圍和判定條件;

(2)枚舉可能的解,驗證是否是問題的解。

枚舉演算法的一般結構:while循環。

參考資料來源:網路-枚舉法




⑩ 編程求質數

演算法:進行雙重循環,對於每一個數n,從2開始,直到根號n結束,如果求余結果為0,則跳出第一重循環,反之,如果循環完成還沒找到求余為0的,則計數器加一,並輸出

熱點內容
開源庫編譯管理員 發布:2025-02-06 09:39:14 瀏覽:914
臉書怎麼注冊安卓 發布:2025-02-06 09:36:47 瀏覽:381
車用安卓導航無線打不開什麼原因 發布:2025-02-06 09:27:50 瀏覽:789
安卓與蘋果如何互相傳送文件 發布:2025-02-06 09:27:40 瀏覽:25
華為伺服器盤符如何分配 發布:2025-02-06 09:26:41 瀏覽:560
傳奇h5源碼下載 發布:2025-02-06 09:26:06 瀏覽:78
編譯uclibc 發布:2025-02-06 09:09:04 瀏覽:152
用gcc編譯16位匯編 發布:2025-02-06 09:06:07 瀏覽:823
什麼低端安卓手機不卡 發布:2025-02-06 09:03:32 瀏覽:13
我的世界伺服器卡領地 發布:2025-02-06 08:50:45 瀏覽:256