mark数组中,元素的值为0,表示该元素的下标为素数,值为1,表示该下标的值不是素数。

作者&投稿:文瑞 (若有异议请与网页底部的电邮联系)
一个整形数组有20个元素,编写程序统计该数组中元素为素数的个数。要~

#include int prime(int n){ int i; if(n>2 && !(n&1) || n<2) return 0; for(i=3;i*i<=n;i+=2) if(!(n%i)) return 0; return 1;}int main(void){ int s[20],i,sum; printf("Input 20 integers...
"); for(sum=i=0;i<20;i++){ scanf("%d",s+i); sum+=prime(s[i]); } printf("A total of %d prime(s).
",sum); return 0;}

int Primer(int num)//返回值为0不是素数,返回值为1是素数{int i;if(num <= 1){return 0;}for(i = 2; i < num; ++i){if(num % i == 0){return 0;}}return 1;}

这是一个求素数的程序。

首先认为0和1是非素数。 然后以2为第一个素数。

prime数组中保存已经获得到的所有已知素数。 

对于任意的i值,

mark[prime[j]*i]=1;

将所有已知素数的i倍,同时在con范围内的标记为非素数。 

由于一个合数,都可以分解成若干个质数乘积的形式。

所以如果只是

for(j=0;j<con&&prime[j]*i<con;j++){
mark[prime[j]*i]=1;
}

那么对于任意的一个prime[j]为该合数因子的情况下,这个赋值都会执行一次。 

为了减少这个不必要的开销,增加一个限定条件

if(i%prime[j]==0)

break;

即如果i是已经查到的某个素数的倍数,那么后续不再操作。

这样就可以限制对于任意合数,赋值为mark[prime[j]*i]=1;只操作一次。




C语言 解线性方程组
printf("\\n请输入a%d1--a%d%d系数和向量b%d: \\n",i,i,n,i);\/*实现将每一行中的系数和向量一次性输入,数之间用空格格开,输完后回车确定*\/ for(j=1;j<=n+1;j++) \/*将刚才输入的数存入数组*\/ scanf("%f",&A[i][j]);} for(k=1;k<=n-1;k++){ ark=max(k);if(ar...

鸿蒙4.0实战教学—基础ArkTS(简易视频播放器)
首先,主界面由视频轮播模块和多个视频列表模块构成,VideoData.ets文件中定义了SWIPER_VIDEOS和HORIZONTAL_VIDEOS两个数组,分别用于存储视频轮播图和列表图片。IndexSwiper.ets中的SwiperVideo组件允许用户通过点击轮播图片跳转到播放页面,并携带本地视频标识。在IndexModule.ets中,VideoModule组件则处理网络视频...

C语言指针问题 *score 与score 有什么区别
score是二维数组指针常量.看到指针,你第一反应是想它指向什么.对于score,它指向的是一维数组score[0], 而score[0]它也是个一维数组指针常量(同样,你也得马上反应过来score[0]是指向score[0][0]的).所以*score就是score[0]了,所以average(*score, 12)就是把score[0][0]的地址和score的元素总...

急急急求从语言高手 程序运行出错 不知道个地方出错了 能编译 能运行...
2)编一个函数处理所有可能的密钥,即计算从100到200的所有素数 3)将密钥化成三个元素的整型数组,分别对应百位、十位和个位 4)将所有英文字符按序轮换减去对应的数组元素,原来是大(小)写英文字符超出大(小)写英文字符范围加上26。3.密码文件内容 Jk fpz nfy aij jpwyfha bszxjy, ztb bwl ...

pku acm 1002 487-3279 为什么一定要把字符串转化成数字吗??
思想其实非常简单,把字符串扫一遍,遇到-不处理,遇到数字直接加,遇到字母转化之后再加。把字符串转化为数字主要是因为对字符串排序比对数组排序慢的多。下面是我帮你改的程序,已经AC include <stdio.h> include <string.h> include <iostream> using namespace std;char a[100002][100];\/\/输入...

深入解析Ubuntu操作系统的目录
29.2.2 数组29.2.3 文件29.2.4 其他函数29.3 处理HTML表格29.4 数据库29.5 阅读参考第30章 Ubuntu中的C\/C++ 编程工具30.1 Linux中的C编程30.1.1 C++编程30.1.2 Linux C\/C++编程入门30.1.3 编程的步骤30.2 C\/C++语言的基本元素30.3 Ubuntu中的C语言编程项目管理工具30.3.1 使用make构建程序30.3.2 使用autoconf...

用c语言编程求线性方程组的解
int rgauss(n,a,b)int n;double a[],b[];{ int *js,l,k,i,j,is,p,q;double d,t;js=malloc(n*sizeof(int));l=1;for (k=0;k<=n-2;k++){ d=0.0;for (i=k;i<=n-1;i++)for (j=k;j<=n-1;j++){ t=fabs(a[i*n+j]);if (t>d) { d=t; js[k]=j;...

C语言数据存储不正确
int main(){ \/*是不是该将下面的数组定义为static变量或是全局变量呢,程序中似乎根本没用到d[NUMBER]*\/ float x[NUMBER],d[NUMBER]; \/*此数组用于存放方程解*\/ ...fprintf(fp,"线性方程组的结果为:\\n");for(i=1;i<=n;i++)fprintf(fp,"x%d=%d\\n",i,d[i]); \/\/d[i]从来没...

镇安县15326425844: mark数组中,元素的值为0,表示该元素的下标为素数,值为1,表示该下标的值不是素数. -
咸骅医创: 这是一个求素数的程序.首先认为0和1是非素数. 然后以2为第一个素数. prime数组中保存已经获得到的所有已知素数. 对于任意的i值, mark[prime[j]*i]=1; 将所有已知素数的i倍,同时在con范围内的标记为非素数. 由于一个合数,都可以...

镇安县15326425844: 迷宫最短路径(c语言编程) -
咸骅医创: 做出来了..花了一天时间..唉..下面是代码.. 如果看的麻烦的话..留个邮箱,我直接把程序文件发过去.. #include<stdio.h> #include<stdlib.h> #include<time.h> int** CreateTwoDimensionalArr(int a, int b)//动态创建二位数组.. { ...

镇安县15326425844: 给数组的第一个原素赋值为的\0含义
咸骅医创: 保证第一个元素的值一定是0,不会是其它值

镇安县15326425844: 给数组的第一个元素赋值为0,这个0不计算长度吗 -
咸骅医创: 只是字符串中,'\0'是作为结束符用的,所以赋值为零算是所谓不计算长度,也就是字符串的长度为零.但其他情况下赋值为零都是正常的数值

镇安县15326425844: b[0]=5是什么意思? -
咸骅医创: b[0]是数组中下标为0的元素,b[0]=5是给b[0]赋值为5.如果定义了一个数组b[n],数组名为b,[n]中的n表示数组中元素的个数.数组中元素的下标一般从0开始,b[0]表示数组b中的第一个元素.

镇安县15326425844: int a[10];和 int a[10]={0};有什么区别?表示的是不是都是全部数组元素置零? -
咸骅医创: 前者只是定义,其值不可预料;后者是全部数组元素置零.

镇安县15326425844: C语言里怎样判断数组里的一个元素为空还是为0 -
咸骅医创: 刚建立的数组既不是null (C程序没有null这个概念,面向对象才有null)也不是0,是不确定!!! 原来内存这块放的什么还是什么,如果数组你不初始化拿来就用,谁也不知道里面是什么,C是不检查的

镇安县15326425844: 已知整型数组a中有若干元素的值为0,编写函数int func(int a[], int n),将a中的0移至数组后面, //非0整 -
咸骅医创: int func(int a[],int n) { int b[n]; int i; int count=0; for(i = 0; i < n; i++) //复制非0整数到b[ ],删除值为0的元素.{ if (a[i]) b[count++]=a[i]; } for(i = 0; i < count; i++) //复制b[]到a[] a[i] = b[i]; for(i = count; i < n; i++) //填充a[]剩余元素为0 a[i] = 0; return (n-count); //返回原数组a中值为0的元素个数 }

镇安县15326425844: 使用语句“Dim a(10)As Integer"定义数组后,a数组中的所有元素都为0,为什么 -
咸骅医创: 定义数组的同时,就已经对数组进行了初始化,数值型初始化为0,字符型初始化为空...integer是数值类型,故初始化为0

镇安县15326425844: c入门 int a[10]={0}是表达这个数组所有值为0还是这个数组没有初始值? -
咸骅医创: 所有值都是0 C语言规定 当数组被部分初始化时,没有被初始化部分 自动为0 所以 int a[10] = {0}; 字面上 只是a[0] = 0; 但其他的 也自动为0不过 int a[10] = {1}; 可不是每个都是1,而是a[0] = 1, 剩余9个 为0

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网