當前位置:首頁 » 編程語言 » c語言數組求素數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言數組求素數

發布時間: 2022-03-30 21:05:16

c語言求數組中質數的和

#include<stdio.h>
intprimesum(intx[],intn)//函數的返回值是int
{int*p,i,s=0;
for(p=x;p<(x+n);p++)
{
for(i=2;i<=*p-1;i++)
if(*p%i==0)break;
if(i>=*p)
s+=*p;
}
returns;//把return放在FOR裡面,只會運行一次就退出了。所以得不到你想要的結果。
}
voidmain()
{
inta[80],i,n;
printf("請輸入數組元素個數: ");
scanf("%d",&n);
printf("請輸入數組的%d個元素: ",n);
for(i=0;i<n;i++)//這里改
scanf("%d",&a[i]);
printf("數組中質數的和是%d",primesum(a,n));//傳數組a的名字就是地址,a[80]下標越界了,而且不是地址。
}

⑵ 用C語言求100以內的素數

#include<stdio.h>
int main()
{
int i,k,n;
printf("請輸入一個整數:");
scanf("%d",&n); //輸入 n 范圍上限
printf("1~%d的素數為:\n",n);
for(i=2;i<=n;i++) //外循環 從2到n 查找
{
for(k=2;k<=i;k++) //內循環 將i除以 2到 i的所有值
if(i%k==0) //i能整除 其中一個數就不是素數 跳出內循環
break;
if(k>=i) //k>=i如果成立 說明前面循環結束時應為 k<=i不滿足 或 k=i是break
//跳出循環 這兩種情況都說明 2到i所有的數都不能被i整除 (除了自身)
printf("%8d\n",i); //滿足就輸出這個素數
}
printf("\n");
return 0;
}

⑶ C語言:求100以內的素數,用數組完成此題。

#include<stdio.h>

intmain()

{

inti;

inta[100],b[100];

intcount=0;

for(i=1;i<=100;i++)

{

intCnt=0;

a[i-1]=i;

for(intj=1;j<=i;j++)

{

if(a[i-1]%j==0)

Cnt++;

}

if(Cnt==2)

{

b[count]=a[i-1];

count++;

}

}

printf("100以內總共有%d個素數,分別如下: ",count);

for(i=0;i<count;i++)

{

printf("%d ",b[i]);

}

printf(" ");

return0;

}

說明:剛剛在VC6.0下現寫的,附圖片

⑷ C語言:輸出數組中的全部素數

沒有安裝c的軟體,完整的給不了你,但是我這有一個類似的實例,我勸你別老靠別人的完整代碼,這樣自己有什麼好處呢?用別人的改成自己的也是一個不錯的選擇,
題目:判斷101-200之間有多少個素數,並輸出所有素數。
程序源代碼:
#include
"math.h"
main()
{
int
m,i,k,h=0,leap=1;
printf("\n");
for(m=101;m<=200;m++)
{
k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap)
{printf("%-4d",m);h++;
if(h%10==0)
printf("\n");

}
leap=1;
}
printf("\nThe
total
is
%d",h);
}

⑸ 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;i<m;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; m<n; 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; i<10; i++)
{
fscanf(rf, "%d %d", &m, &n);
num(m, n, xx);
for (m=0; m<n; m++)
fprintf(wf, "%d ", xx[m]);
fprintf(wf, "\n");
}
fclose(rf);
fclose(wf);
}
求一個大於m且僅靠m的k個素數存入數組xx傳回,不知哪裡出錯,除了num函數,其他都是題目給的

⑹ 用c語言用數組求100之內的素數

#include <stdio.h>#define MAX 100int PrimeNum( int i ) //判斷函數{ int j; for( j = 2; j*j < i; j++ ) { if( i % j == 0 ) return 0; } return 1;}int main( ){ int drr[MAX] = { 0 }; for( int i = 2; i < MAX; i++ ) // 循環判斷 { int flag = 0; flag = PrimeNum( i ); if( flag ) { drr[i] = flag; } } for( int i = 2; i < MAX; i++ ) // 輸出 { if( drr[i] == 1 ) printf(" %d, ",&drr[i] ); if( i%10 == 0 ) printf(" \n "); } getch(); return 0;} // 完了, 程序雖然簡單勒點,可已滿足樓主的要求

⑺ C語言程序,利用數組,找出100以內素數,該怎麼寫程序

#include<stdio.h>
intmain()
{chari,j,a[101]={0};
for(i=2;i<=10;i++)
if(!a[i])
for(j=i+i;j<101;j+=i)
a[j]=1;
for(i=2;i<101;i++)
if(!a[i])printf("%d",i);
return0;
}

⑻ c語言用數組解決求100以內素數

  1. 把for(q=0;q<=100;q++)改成for(q=1;q<100;q++)——因為a[0]==1,肯定不是素數,且=100就越界了。

  2. for(o=2;o<=a[q];o++)改成for(o=2;o<a[q];o++)——因為任何數都會被自身整除。

  3. 把if(p=1)改成(p==1)——if(p=1)這樣寫這個if如同白設,因為p=1總是為「真」。

⑼ C語言:用數組求1~n內所以素數

代碼資料:

#include "stdio.h"

#include <stdlib.h>

int main(int argc,char *argv[]){

int i,j,n;

char *p;

printf("Enter n(int n>0)... n=");

if(scanf("%d",&n)!=1 || n<1){

printf("Input error, exit... ");

return 0;

}

if((p=(char *)malloc(++n))==NULL){

printf("Application memory failure... ");

return 0;

}

for(p[0]=p[1]=0,p[2]=1,i=3;i<n;p[i++] = i&1 ? 1 : 0);

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

if(p[i])

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

if(p[j] && j%i==0)

p[j]=0;

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

if(p[i])

printf("%d ",i);

free(p);

printf(" ");

return 0;

}