当前位置:首页 » 编程语言 » 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;

}