点击上方“蓝字”关注我们

愉快的一天,不得不做的三件事:

种田,锄地,整代码!!!

【题目】

“1898——要发就发”。请将不超过1993的所有素数从小到大排成第一行,第二行上的每个数都等于它右肩上的素数之差。编程用函数实现并求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假设存在的话,又有几种这样的情况?

第1行:2  3  5  7  11  13  17 ……1979  1987  1993

第2行:1  2  2  4   2   4    ……        8     6

【设计思路】

假设第1行中的素数为n[1]、n[2]、n[3]……n[j]…… , 第2行中的差值为m[1]、m[2]、m[3]……m[j]…… , 其中m[j]=n[j+1]-n[j],则第2行连续j个数的和为

SUM =m[1]+m[2]+m[3]+…+m[j]

=(n[2]-n[1])+(n[3]-n[2])+(n[4]-n[3])+…+(n[j+1]-n[j])

=n[j+1]-n[1]

由此题目就变成了:在不超过1993的所有素数中是否存在这样两个素数,它们的差恰好是1898。

若存在,则第2行中必有所需整数序列,其和恰为1898. 由分析可知,因为任意素数与2的差一定为奇数,所以不用考虑2.

【代码分析】

int prime(int n)

{

int i;

long k;

k = sqrt(n)+1;

for(i=2;i

if(n%i==0)

return 0;

return 1;

}

prime() 为判断是否为素数的函数,

若是,返回 1;若不是,返回 0.

for(i=3;i<=1993;i+=2)

{

if(prime(i))

num[j++]=i;

}

从3到1993,将所有的素数全部存在数组num[]中.

for(j--; num[j]>1898; j--)

{

for(i=0; num[j]-num[i]>1898; i++);

if(num[j]-num[i] == 1898)

{

k++;

printf("第%d种情况:%-4d - %-4d = 1898\n",k,num[j],num[i]);

}

}

依次匹配数组里的数字,若两数之差为1898,则k++,并打印此时的两位数字.

【代码展示】

C语言   要发就发

#include

#include

#define N 1000

int prime();

void fa();

int main()

{

fa();

return 0;

}

int prime(int n)

{

int i;

long k;

k = sqrt(n)+1;

for(i=2;i

if(n%i==0)

return 0;

return 1;

}

void fa()

{

int i,j=0,num[N],k=0;

printf("-------欢迎进入操作界面-------\n\n");

for(i=3;i<=1993;i+=2)

{

if(prime(i))

num[j++]=i;

}

for(j--; num[j]>1898; j--)

{

for(i=0; num[j]-num[i]>1898; i++);

if(num[j]-num[i] == 1898)

{

k++;

printf("第%d种情况:%-4d - %-4d = 1898\n",k,num[j],num[i]);

}

}

}

【运行结果展示】

IT 农工要回家休息了,我们下期再见吧

记得点击“在看”进行收藏哦

往期精彩

C语言 捕鱼和分鱼

C语言 求π的近似值

c语言prime函数怎么用_C语言 要发就发相关推荐

  1. c语言prime函数怎么用_C语言教程_v20201106

    编程基础 1.1    通俗地理解什么是编程语言 1.2    C语言究竟是一门怎样的语言? 1.6    初中毕业能学会编程吗? 1.7    C和C++到底有什么关系? 1.8    学了 C 语 ...

  2. c语言prime函数怎么用_C语言入门——第六周笔记——数组运算

    周围太安静了,安静到现在就算有一根针掉地上也能听到清脆的一声响. 我抬头看了看大哥,大哥,生气了. --纹路 数组运算 数组运算 数组的集成初始化 int 这次对数组的赋值很上次有明显的不同,这次并没 ...

  3. c语言srand函数怎么用_C语言的main函数到底该怎么写

    前言 从开始学习C语言到现在,我们似乎看到了很多个版本的main函数,那么哪一种才是正确的呢?我们先来看看目前有哪些版本. main函数版本 第一种,没有返回值,没有入参: main() 在C89标准 ...

  4. c语言string函数的用法_C语言基础| 指针和函数

    点击蓝字关注我们 指针和函数 栈帧:当函数被调用时,系统会在stack空间上申请一块内存,用来给函数提供空间,存储形参和局部变量(定义在函数内部的变量). 当函数调用结束时,这块内存空间会被自动释放( ...

  5. C进阶_C语言_函数与指针_C语言指针进阶

    上一篇博客http://t.csdn.cn/GYCiM 我们了解了指针相关知识,今天来了解函数和指针的关系. 目录 函数指针 函数指针数组 指向函数指针数组的指针 回调函数 qsort 冒泡排序模拟实 ...

  6. c语言程序 中断函数示例,单片机_C语言函数_中断函数(中断服务程序)

    c语言中的中断函数注意事项 单片机_C语言函数_中断函数(中断服务程序) 在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统. 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该 ...

  7. java跨函数跳转_C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧...

    1.方法一 要对绝对地址0x100000赋值,我们可以用 (unsigned int  * ) 0x100000 = 1234; 那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做? ...

  8. c语言atoll函数怎么用_C ++中带有示例的atoll()函数

    c语言atoll函数怎么用 C ++ Atoll()函数 (C++ atoll() function) atoll() function is a library function of cstdli ...

  9. c语言gets,getc,C++_C语言的getc()函数和gets()函数的使用对比,C语言getc()函数:从流中读取字 - phpStudy...

    C语言的getc()函数和gets()函数的使用对比 C语言getc()函数:从流中读取字符头文件: #include 函数getc()用于从流中取字符,其原型如下: int getc(FILE *s ...

最新文章

  1. 如何解决数据丢失问题
  2. python入门基础代码图-Python Matplotlib绘图基础知识代码解析
  3. 在secureCRT软件上运行一些简单的python脚本
  4. STL之函数对象和谓词
  5. 【删库不跑路】—Linux系统自杀实验 rm -rf /* 及如何抢救和预防
  6. 关于计算机音乐编创的论文,有关浅谈少儿舞蹈音乐的编创论文
  7. pandas求协方差、相关系数、显著性检验
  8. WordPress实现前台登录or注册功能
  9. 品优购---品优购项目规划---8.3
  10. 如何带领好一个销售团队
  11. pdm系统是归档服务器吗,PDM系统档案管理
  12. 公网Kamailio 代理 freeswitch 和做 sbc
  13. 【机器学习】可决系数R^2和MSE,MAE,SMSE
  14. 关于win10系统中谷歌浏览器崩溃的问题
  15. 基于51单片机的出租车计价器的设计
  16. git安装及命令使用和github网站
  17. 朋友圈被公司“无偿征用”,该怎么办?
  18. Windows10 内存占用过高怎么办并且持续增长,怎么办?
  19. tkinter-Text详解
  20. riak教程 java_在Erlang(和Riak)中开发应用程序时的良好实践?

热门文章

  1. 谈谈这些年前端的变化
  2. C语言试题二十九之编写函数int function(int lim,int aa[max])求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。
  3. C和指针之编译出现warning: implicit declaration of function ‘matrix_multiply‘ is invalid in C99问题
  4. Tree前序反序列化
  5. Android之Google推荐的图片加载库Glide介绍
  6. 【C语言简单说】十一:switch 补
  7. python在web可以开发吗_Python Web开发
  8. mysql为什么添加索引_当我添加新索引时,为什么MySQL中索引的基数保持不变?
  9. 惊了!哆啦A梦里最能打的道具,居然真实存在!还打破了世界纪录,看完跪了....
  10. 别不承认!搞懂那些数理原理,才发现它们和枯燥根本不沾边!