IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Mersenne素数(梅森素数)C语言版 -> 正文阅读

[C++知识库]Mersenne素数(梅森素数)C语言版

梅森数与梅森素数

梅森数(Mersenne number)又称麦森数,是指形如2^p-1的正整数,其中指数p是素数,常记为Mp 。若其是素数,则称为梅森素数。

———————注意———————

  • 梅森数:满足2^p—1的所有数,梅森数可能是合数也可能是素数。
  • 梅森素数:梅森数中的素数,才称之为梅森素数。

举例:2^11—1=2047=23×89,
所以2047是合数,只能称其梅森数。————————————————
梅森素数的确定:就是判断一个符合格式要求的梅森数是素数即可 。

算法:打印前n个梅森素数。(C语言版)

/* 简介:形为 Mp = 2^p-1,p为素数的数字叫做梅森数 。当梅森数Mp为素数时,叫做 Mersenne素数。*/
/*要求:计算前n个 Mersenne素数。*/
/*素数判断:除了2和3以外,质数只分布在6x(x>=1)的两侧,所以只需要判断 6x-1 与 6x+1 .*/
/*代码缺陷:只能打印前8个梅森素数。因为定义的梅森数Mp是int类型的。第九个及以后的范围超过了int类型的范围。*/
#include<stdio.h>
#include<math.h>
int Isprime(int num)//判断是否为素数,是则返回1(真),否者返回0(假) 
{
	int i;
    for (i = 2; i <= sqrt(num); i++)
    if (num % i == 0) return 0;
    return 1;
}
int main()
{
	int n;
	printf("--------------< 计算前n个Mersenne素数 >------------hao\n\n"); 
	printf("请输入n(n<=8):");
	scanf("%d",&n);
	int count=3,p=2,x,Mp;
	printf("\ni      |p      |2^p-1  \n");
	printf("_______|_______|________\n");
	if(n>=1) printf("1      |2      |3      \n");
	if(n>=2) printf("2      |3      |7      \n");//如果n符合要求则打印前两个梅森素数 
	for(x=1;count<=n;++x)
	{
		p = 6*x-1;//6x的左侧 
		Mp=pow(2,p)-1;
        if(Isprime(p) && Isprime(Mp) &&count<=n ) //如果p为素数,梅森数Mp也为素数,则其为梅森素数。且若这是前n个梅森素数,则打印。 
        {
          printf("%-7d|%-7d|%-7d\n",count,p,Mp);
          count++;
        }
        
        p = 6*x+1;//6x的右侧 
        Mp=pow(2,p)-1;
        if( Isprime(p) && Isprime(Mp) && count<=n ) 
        {
         printf("%-7d|%-7d|%-7d\n",count,p,Mp);
         count++;
        }  		
	}
	return 0;
 } 

输入输出样例:

--------------< 计算前n个Mersenne素数 >------------hao

请输入n(n<=8):8

i      |p      |2^p-1
_______|_______|________
1      |2      |3
2      |3      |7
3      |5      |31
4      |7      |127
5      |13     |8191
6      |17     |131071
7      |19     |524287
8      |31     |2147483647
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-07 13:40:26  更:2021-10-07 13:43:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 3:26:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码