C语言实现的统计素数并求和代码分享_C 语言

题目来源于PAT平台,此题又是费了一番脑子。题目要求输出给定区间内的素数个数并对他们求和。具体思路是利用循环判断素数,将结果传递给控制变量,由控制变量再来判断是否执行自增以及求和。当然这里必须要注意1既不是素数也不是合数。

下面是代码:

复制代码 代码如下:

#include <stdio.h>
int main ()
{
 int a=0,b=0;
 int n=0,sum=0;
 int x=0,i=0;
 scanf("%d %d",&a,&b);
 int check=1; //假设为素数
 for (x=a;x<=b;x++){
     check=1;
     for (i=2;i<x;i++){
       if (x%i==0){
       check=0;
       break;
       }      //该循环用于判定是否为素数,遍历一遍小于x的数,如果有能整除x的即给变量赋值为0,并直接跳出循环
     }
     if (check != 0 && x!=1){
       n++;
       sum+=x;
     } //该if用于判断之前循环传递的check值,并且加入x是否为1的判断
 }
 printf("%d %d",n,sum);
 return 0;
}

时间: 2024-09-27 08:47:48

C语言实现的统计素数并求和代码分享_C 语言的相关文章

C++文件读写代码分享_C 语言

编写一个程序,统计data.txt文件的行数,并将所有行前加上行号后写到data1.txt文件中. 算法提示: 行与行之间以回车符分隔,而getline()函数以回车符作为终止符.因此,可以采用getline()函数读取每一行,再用一个变量i计算行数. (1)实现源代码 #include <iostream> #include <fstream> #include <string> #include <sstream> using namespace std

C语言实现的猜拳游戏代码分享_C 语言

这是一个简单的猜拳游戏(剪子包子锤),让你与电脑对决.你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负. 下面的代码会实现一个猜拳游戏,让你与电脑对决.你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负. 启动程序后,让用户出拳,截图: 用户出拳,显示对决结果:截图: 代码实现: #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { char gamer; // 玩家出拳 int

C语言进制转换代码分享_C 语言

代码很简单,功能也很简单,这里就不多废话了 #include<stdio.h> int main() { char ku[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int zh[32],i=0,w,j; long int b,y; printf("请输入一个十进制数,我能帮您把它转换成2~16任意进制数:\n"); scanf("%d",&y);

C语言统计字符个数代码分享_C 语言

C语言实现统计字符个数 #include<stdio.h> int main() { int sz[10]={0},zm[26]={0},z[26]={0},i,space=0,e=0,t=0; char c; printf("请输入一段字符,统计其中各字符的数量\n"); while((c=getchar())!='\n') { if(c<='z'&&c>='a') zm[c-'a']++; else if(c<='Z'&&

C语言完美实现动态数组代码分享_C 语言

我们知道,C语言中的数组大小是固定的,定义的时候必须要给一个常量值,不能是变量. 这带来了很大的不便,如果数组过小,不能容下所有数组,如果过大,浪费资源. 请实现一个简单的动态数组,能够随时改变大小,不会溢出,也不会浪费内存空间. 下面的代码实现了简单的动态数组: #include <stdio.h> #include <stdlib.h> int main() { //从控制台获取初始数组大小 int N; int *a; int i; printf("Input ar

C语言解决螺旋矩阵算法问题的代码示例_C 语言

赶集网校招就采用了螺旋输出矩阵作为程序题,要求将矩阵螺旋输出如: 图中6*6矩阵线条所示为输出顺序,如果输出正确的话应该输出1~36有序数字.  我想的是这么做的: #include <stdio.h> //#define LEN 1 //#define LEN 2 //#define LEN 3 #define LEN 4 void printClock(int a[][LEN]){//输出函数 int t; int i = 0, m = 0; int j = LEN, n = LEN; w

C语言实现的bitmap位图代码分享_C 语言

事实上,我们是用每一个 元素表示一个32位的二进制字符串,这样这个元素可以保留相邻32个号码是否存在的信息,数组范围就下降到10000000/32了.例如对于号码 89256,由于89256 mod 32=2789-8,这样我们应该置a[2789]中32位字符串的第8位(从低位数起)为1. #define WORD 32 #define SHIFT 5 ////移动5个位,左移则相当于乘以32,右移相当于除以32取整 #define MASK 0x1F //16进制下的31 #define N

一个快速排序算法代码分享_C 语言

复制代码 代码如下: /* * quickSort.c * *  Created on: 2012-4-9 *      Author: LW */#include <stdio.h>#include <string.h> typedef struct _student{ int id; char name[30];}student,*pStudent; student students[20] ={ {13,"狐狸金"},{15,"杜十娘"

队列的动态链式存储实现代码分享_C 语言

复制代码 代码如下: #include <stdlib.h>#include <malloc.h>#include <memory.h>#include <assert.h>#include "DynaLnkQueue.h" /*------------------------------------------------------------操作目的: 初始化队列初始条件: 无操作结果: 构造一个空的队列函数参数:  LinkQue