c語言求素數並存到數組,c語言將100以內的素數存放到一個數組中

本文目錄一覽:

C語言 求出 2 到 m 之間 ( 含 m,m

#include stdio.h

#include stdlib.h

int main()

{  

 int m,i,j,k=0,flag=1;  

 scanf(“%d”,m);  

 

 int a[1000];  

 for(i=2; i=m; i++) //其實2不需要特殊處理的,就從2開始 

 {       

  flag = 1;//每輪的flag都需要重新賦值的

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

  {          

   if(i%j==0)      

   {              

    flag=0;//非質數,直接退出

    break;        

   }

        }

  if(flag)  

  {

   //輸出質數

            a[k]=i; 

   printf(“%4d”,a[k]); 

   k=k+1;

        } 

 } 

 

 printf(“\n%d\n”,k);   

 

 return 0;

}

printf(”    2″);

就不要放到循環里了,否則會循環輸出的,不符合你的最終要求!

用C語言把2-100之內的素數放到數組裡,並且輸出來。

#include stdio.h

#include stdlib.h

#include math.h

#define n 100

int main()

{

int a[n+1]={0};

int i,j;

for(i=2;i=sqrt(n);i++){

if(a[i]==0){

for(j=2*i;j=n;j+=i){

a[j]=1;

}

}

}

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

if(a[i]==0)

printf(“%d “,i);

}

return 0;

}

輸出100以內的素數,思路:

假如自然數N不是素數,則除1和其本身之外,必然至少存在兩個數A和B,使得A*B=N,則A和B中必有一個大於或者等於sqrt(N),另一個小於或者等於sqrt(N)。下面是粗略證明如果N是合數,則必有一個小於或者等於根號N的素因子.因為任何合數都可表示為兩個或者更多個素數之積。

假如N是合數且其素因子都大於根號N,那麼將產生矛盾:根號N*根號NN。所以合數必有(至少)一個不大於根號N的素因子。

n的不大於根號的因子=sqrt(n);n-1的不大於根號的因子=sqrt(n-1),顯然sqrt(n-1)sqrt(n);所以2~n內的自然數的因子範圍是2~sqrt(n);換句話說2~sqrt(n)的倍數覆蓋了了2~n範圍內的合數。

擴展資料:

數組使用規則:

1.可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。

2.只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。

3.如不給可初始化的數組賦初值,則全部元素均為0值。

4.如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。

參考資料:

百度百科-數組

C語言:找出100以內的所有素數,存放在一維數組中,並將所找到的素數按每行10個數的形式輸出。

素數,於是100以內的素數應該少於50個,我們就以a[50]來存放這些素數吧.還有1不是素數。

main()

{

int a[50];

int i=5,j=3,m=1;

a[0]=2;a[1]=3;

for(i=5;i100;i=i+2)

loop1: for(j=3;ji;j++)

loop2:

if(i%j==0)

else

{if(j==i-1)

a[++m]=i;

else

}

/*來驗證一下是否正確*/

printf(“%d\n”,m);/*看看有多少個素數*/

for(i=0;i=m;i++)

printf(“%d\t”,a[i]);

}

c語言 編寫一個函數 搜索出一組數中的素數 並將它保存到另一個數組中

//這個給你參考

#includestdio.h

#includestdlib.h

#includemath.h

#includeassert.h

#includememory.h

bool is_prime(unsigned int n)

{

if(n2)

{

return false;

}

unsigned int ncnt=(unsigned int)sqrt(n*1.0);

for(unsigned int i=2;i=ncnt;i++)

{

if(n%i==0)

return false;

}

return true;}

unsigned int search_prime(int* src,int* res,int n)

{

// assert(src!=NULLres!=NULL); //

memset(res,0,sizeof(int)*n);

unsigned int ncnt=0;

for(int i=0;in;i++)

{

if(is_prime(*src))

{

*res++=*src;

++ncnt;

}

src++;

}

return ncnt;

}

int main()

{

int test[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

int res[20]={0};

int ncnt=search_prime(test,res,20);

printf(“%d\n”,ncnt);

for(int i=0;incnt;i++)

{

printf(“%d “,res[i]);

}

printf(“\n”);

return 0;}

C語言求素數數組

#include stdlib.h

#include stdio.h

void readwriteDat();

void num(int m, int k, int *xx)

{

int n=0,i,b;

while(m++)/*死循環*/

{

for(i=2;im;i++)

{

if(!(m%i))

{b=0;break;}

else b=1;

}

if(b) xx[n++]=m;/*if(n==k-1) break;

}

}

int main()

{

int m, n, xx[1000];

printf(“\nPlease enter two integers:”);

scanf(“%d%d”, m, n);

num(m, n, xx);

for (m=0; mn; m++)

printf(“%d “, xx[m]);

printf(“\n”);

readwriteDat();

system(“pause”);

return 0;

}

void readwriteDat()

{

int m, n, xx[1000], i;

FILE *rf, *wf;

rf = fopen(“in.dat”, “r”);

wf = fopen(“out.dat”, “w”);

for (i=0; i10; i++)

{

fscanf(rf, “%d %d”, m, n);

num(m, n, xx);

for (m=0; mn; m++)

fprintf(wf, “%d “, xx[m]);

fprintf(wf, “\n”);

}

fclose(rf);

fclose(wf);

}

求一個大於m且僅靠m的k個素數存入數組xx傳回,不知哪裡出錯,除了num函數,其他都是題目給的

C語言編程,從3開始,求出最小的10個素數,並保存到數組中

代碼如下:

#includestdio.h

int main() {

int num[10] = { 2 }, idx = 1;

for (int i = 3; idx != 10; i++) {

int flag = 1;

for (int j = 0; j*j = i  j  idx; j++) {

if (i%num[j] == 0) {

flag = 0;

break;

}

}

if (flag) num[idx++] = i;

}

for (int i = 0; i  10; i++)

printf(“%d “, num[i]);

printf(“\n”);

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/239431.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:16
下一篇 2024-12-12 12:16

相關推薦

  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有著廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python去掉數組的中括弧

    在Python中,被中括弧包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括弧。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29

發表回復

登錄後才能評論