梅森尼数
形如2^i-1的素数,称为梅森尼数。编程计算并输出指数i在[2,n]中的所有梅森尼数,并统计这些梅森尼数的个数,其中n的值由键盘输入,并且n的值不能大于50。其中,2^i表示2的i次方,请不要使用pow(2,i)编程计算,应采用循环累乘求积的方式计算2^i。
提示:当i超过30以后,2^i-1的值会很大,不能用long型变量来存储,必须使用double类型来存储。对于double类型变量x(不是整型)不能执行求余运算,即不能用x%i == 0来判断x是否能被i整除,可以使用x/i == (long long)(x/i)来判断x是否能被i整除。

程序运行示例
Input n:
50↙
2^2-1=3
2^3-1=7
2^5-1=31
2^7-1=127
2^13-1=8191
2^17-1=131071
2^19-1=524287
2^31-1=2147483647
count=8

输入提示信息:"Input n:\n"
输入格式: "%d"
输出格式: "2^%d-1=%.0f\n"
           "count=%d\n"

代码如下:

#include<stdio.h>
#include<math.h>
int IsPrime(double x);
int main()
{     double  t, m;int     count = 0, i, n;printf("Input n:\n");scanf("%d", &n);t = 2;for (i = 2; i <= n; i++){     t = t * 2;m  = t - 1;if (IsPrime(m)){     count++;printf("2^%d-1=%.0f\n", i, m);}}printf("count=%d\n", count);return 0;
}
// 函数功能:判断x是否是素数,若函数返回0,则表示不是素数,若返回1,则代表是素数
int IsPrime(double x)
{     int i, flag = 1;int squareRoot = (int)sqrt(x);if (x <= 1)   flag = 0;     // 负数、0和1都不是素数for (i = 2; i <= squareRoot && flag; i++){     if (x / i == (long long)(x / i)) flag = 0; // 若能被整除,则不是素数}return flag;
}     

C语言程序设计——函数 梅森尼数形如2^i-1的素数,称为梅森尼数。编程计算并输出指数i在[2,n]中的所有梅森尼数,并统计这些梅森尼数的个数,其中n的值由键盘输入,并且n的值不能大于50。相关推荐

  1. C语言程序设计—循环设计 编写一个程序打印如下对称图形(行数由键盘输入1-9范围的值),例如下面是输入数字4时的情形:

    编写一个程序打印如下对称图形(行数由键盘输入1-9范围的值),例如下面是输入数字4时的情形: 首先提示输入:"Enter n(1-9):\n" 输入格式:"%d" ...

  2. c语言程序设计函数题,C语言程序设计函数练习题及参考答案

    <C语言程序设计函数练习题及参考答案>由会员分享,可在线阅读,更多相关<C语言程序设计函数练习题及参考答案(60页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计练习题及参 ...

  3. c语言程序设计函数题,C语言程序设计函数练习题及参考答案.doc

    C语言程序设计函数练习题及参考答案.doc C 语言程序设计练习题及参考答案 1. 定义一个函数 int funint a,int b,int c, 它的功能是 若 a,b,c 能构成等边三角形函数返 ...

  4. 【清华大学-郑莉教授】C++语言程序设计 函数的参数函数的内联、重载和系统函数的调用

    [清华大学-郑莉教授]C++语言程序设计 函数的参数&&函数的内联.重载和系统函数的调用 函数的参数 交换算法 输入两个整数并交换 函数的内联.重载和系统函数的调用 内联函数 函数的重 ...

  5. C语言试题五之计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和

    1.题目 请编写函数function,它的功能是:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和 例子:若我们main函数给出double a[9] = {1, 2, 3, 4, ...

  6. 梅森数形如2 ​n ​​ −1的素数称为梅森数(Mersenne Number)。例如2 ​2 ​​ −1=3、2 ​3 ​​ −1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2 ​3

    形如2 ​n ​​ −1的素数称为梅森数(Mersenne Number).例如2 ​2 ​​ −1=3.2 ​3 ​​ −1=7都是梅森数.1722年,双目失明的瑞士数学大师欧拉证明了2 ​31 ​ ...

  7. 【C语言】从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号)。

    C语言实战题目:从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号).例如,输入-123,则忽略负号,由123分离出其百位1.十位2.个位3,然后计算3*100+2*10+1 = ...

  8. 【C语言入门】假设银行定期存款的年利率 r 为 2.25 % ,从键盘输入本金和存款年限,编程计算并输出该笔存款到期后的本金和利息一共有多少。

    题目:假设银行定期存款的年利率 r 为 2.25 % ,从键盘输入本金和存款年限,编程计算并输出 该笔存款到期后的本金和利息一共有多少. (例如:当本金为 1000 元,存入 10 后,应得的本金与利 ...

  9. 用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵。

    按如下函数原型,用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵. 其中,n由用户从键盘输入.已知n值不超过10. void Transpose(int a[][N], int n); v ...

最新文章

  1. 二值网络训练--Training Competitive Binary Neural Networks from Scratch
  2. hdu 1213 How Many Tables ([kuangbin带你飞]专题五 并查集)
  3. 建立单独的解决方案来开发DNN模块
  4. vue项目实现登录(sessionStorage 存储 token)
  5. ShellExecute 函数的用法和实例
  6. 微型计算机原理偏移地址,微机原理试卷答案(B)
  7. Android Thread/Runnable/Handler用法
  8. SQL Server2008如何设置开启远程连接
  9. python 终止程序代码 多线程_我想问一下,tkinter 做多线程爬虫,让他停止该怎么做 quit 和 exit 都是直接退出程序...
  10. 手把手教你学DSP:基于TMS320C55x
  11. 三面网易,四面阿里,五年开发经验程序员剑指大厂,稳拿offer
  12. 【SSL证书】如何使用 FreeSSL (V2.8.0) 申请免费证书及安装
  13. Epicor 调试 customization
  14. JavaScript 每日一题---LeetCode 2.两数相加
  15. 积分商城游戏化运营?积分游戏应该如何正确设置
  16. 微信公众号修改业务域名、JS接口安全域名、网页授权域名
  17. 现在已经有越来越多的人开始投身到了深度介入产业,真正拥抱互联网
  18. jarvisoj_level0
  19. Writing an LLVM Pass
  20. php的框架修改建议,thinkphp 框架适配修改

热门文章

  1. ASP.NET2.0:利用Localization实现本地化
  2. 11-hive数据查询方式
  3. NET 里序列化可概念。
  4. 白苹果了怎么办_建行储蓄卡云闪付bug还款玩法(苹果和安卓机攻略)
  5. xdm俺来了、详解超市订单管理系统SSM版本
  6. 初探STM32掉电复位PDR
  7. 命令行重启Mysql
  8. Android下载地址
  9. html/template 和 text/template区别
  10. 远程服务器套娃,无限套娃!RemoteView云上浏览器:运行在浏览器里的远程浏览器...