一.梅森素数

素数有无穷多个,却只有极少量的素数能表示成2p-1(p为素数)的形式。在不大于257的素数中,当p=2、3、5、7、13、17、19、31、67、127、257时,2p-1是素数,其它都是合数。前面的7个数(即2、3、5、7、13、17、19)已被前人所证实,而后面的4个数(即31、67、127、257)则是梅森自己的推断。2300多年来,人类仅发现48个梅森素数。

指数为11, 23, 29, 37, 41, 43, 47, 53, 59的时候是合数。

二.过程

  1. 给出2-64里面能符合梅森素数且是合数的指数数组。
  2. 一个一个数进行判断,用判断素数的方法,如果是合数的话就打印出它的素数乘法因子。

三.源码(超时)

超时代码:

 //
// main.cpp
// sicily-1009
//
// Created by ashley on 14-10-10.
// Copyright (c) 2014年 ashley. All rights reserved.
// #include <iostream>
#include <cmath>
using namespace std;
int primes[] = {, , , , , , , , , , , , , , , , , };
int main(int argc, const char * argv[])
{
int k;
cin >> k;
for (int i = ; primes[i] <= k; i++) {
long long number = (long long)pow(2.0, primes[i]) - ;
long long composite = number;
bool firsttime = true;
bool iscomposite = false;
for (long long j = ; j * j <= number; j++) {
if (number % j == ) {
number = number / j;
iscomposite = true;
if (firsttime) {
firsttime = false;
cout << j << " ";
} else {
cout << "* " << j << " ";
}
}
}
if (iscomposite) {
cout << "* " << number << " ";
cout << " = " << composite << " = ( 2 ^ " << primes[i] << " ) - 1" << endl;
}
}
return ;
}

通过代码:

 //
// main.cpp
// sicily-1009
//
// Created by ashley on 14-10-10.
// Copyright (c) 2014年 ashley. All rights reserved.
// #include <iostream>
#include <cmath>
using namespace std;
int primes[] = {, , , , , , , , , , , , , , , , };
int main(int argc, const char * argv[])
{
int k;
cin >> k;
for (int i = ; primes[i] <= k; i++) {
long long number = (long long)pow(2.0, primes[i]) - ;
long long composite = number;
bool firsttime = true;
bool iscomposite = false;
long long factor = ;
for (long long j = factor; j * j <= number; j++) {
if (number % j == ) {
number = number / j;
iscomposite = true;
if (firsttime) {
firsttime = false;
cout << j << " ";
} else {
cout << "* " << j << " ";
}
} //else {
// factor++;
// }
}
if (iscomposite) {
cout << "* " << number << " ";
cout << "= " << composite << " = ( 2 ^ " << primes[i] << " ) - 1" << endl;
}
}
return ;
}

四.补充:产生素数的算法:

五.指数函数:pow double pow (double base, double exponent);

六.不知道为什么要去掉61,提前算好的吗?这样有意思吗?直接switch不就好了?

Sicily-1009 梅森素数的更多相关文章

  1. nefu 120 梅森素数

    题意:给出p(1<p<=62),让你求Mp=2^p-1是否为梅森素数. 梅森素数:若p为素数,且Mp=2^p-1也是素数,则Mp为梅森素数.若p为合数,Mp=2^p-1一定为合数若p为素数 ...

  2. 加入GIMPS项目,寻找梅森素数!

    截止到目前为止人类共找到了50个梅森素数,其中最后16个梅森素数都是通过GIMPS项目找到的. 为了激励人们寻找梅森素数和促进网格技术发展,总部设在美国旧金山的电子前沿基金会(EFF)于1999年3月 ...

  3. 梅森素数 判定总结 - Lucas-Lehmer算法 & Miller-rabin算法

    梅森素数 定义: if m是一个正整数 and 2^m-1是一个素数 then m是素数 if m是一个正整数 and m是一个素数 then M(m)=2^m-1被称为第m个梅森数 if p是一个素 ...

  4. 梅森素数应用 nefu 120

    梅森素数 定义: if m是一个正整数 and 2^m-1是一个素数 then m是素数 if m是一个正整数 and m是一个素数 then M(m)=2^m-1被称为第m个梅森数 if p是一个素 ...

  5. Codeforces 225E 梅森素数

    注:梅森素数,数组表示的是2^n-1的n,指数. #include <stdio.h> #include <math.h> ; ; typedef long long ll; ...

  6. LA2955 Vivian难题——梅森素数

    题意 输入 $k$(1 \leq k \leq 100)个正整数 $p_1, p_2, ..., p_k$(1 < p_i < 2{31}),找出 $k$ 个非负整数 $e_i$ 使得 $ ...

  7. java实现第四届蓝桥杯梅森素数

    梅森素数 题目描述 如果一个数字的所有真因子之和等于自身,则称它为"完全数"或"完美数" 例如:6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 ...

  8. nefu120梅森素数

    #include<iostream> #include<cstdio> using namespace std; typedef long long ll; const int ...

  9. sicily 1009. Mersenne Composite N

    Description One of the world-wide cooperative computing tasks is the "Grand Internet Mersenne P ...

随机推荐

  1. Mybaits入门之起航

    前言 Mybaits技术现在很多公司都在使用,它提供了简单的API可以快速进行数据库操作,所以不管是自己做系统还是找工作都有必要了解一下. 学习一门技术如果是入门的话要么买书要么就是阅读官方的文档,而 ...

  2. 【转】QT QString, wchar_t *, TCHAR, CString和其他字符或字符串类型的转化

    //QString to wchar_t *: const wchar_t * encodedName = reinterpret_cast<const wchar_t *>(fileNa ...

  3. Volley 设置 RetryPolicy 不起作用, 重复提交

    RT, Google后有的说是 将超时时间设置为0, 但是还是会重试提交, 解决方案如下: static HurlStack stack = new HurlStack(){ @Override pr ...

  4. Linux 系统之Sysvinit

    子贡问为仁.子曰:“工欲善其事,必先利其器.居是邦也,事其大夫之贤者,友其士之仁者.”——孔子(春秋)<论语·卫灵公> [工欲善其事,必先利其器] 掌握一门技术,知道其发展历程是非常重要的 ...

  5. ASCII码图

    图片转ASCII码图   效果图 基本思路 把图片每个像素点的信息拿出来,最重要的是拿到rgb的值 把每个像素点由rgb转成灰度图像,即0-255 给0-255分级,把每个等级的像素点转换成ascii ...

  6. Qt 智能指针学习(7种QT的特有指针)

    从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ #include <QApplication> #include <QLabel> int main(int arg ...

  7. MFC模式对话框与非模式对话框 消息处理顺序

    对话框有两种创建方式:DoModal和Creat. 其中DoModal创建的是模态的对话框,而Creat创建的是非模态的对话框下面总结下他们的不同. 对于模态的对话框,在该对话框被关闭前,用户将不能在 ...

  8. ThinkPHP 3.1.2 查询方式的一般使用1

    public function show(){ echo "访问了index模块下的show方法!!"; echo "欢迎你".$_GET['name'].'你 ...

  9. 中国天气网API

    中国天气网有三个 API 适用于不同场合的使用. http://m.weather.com.cn/data/101050101.html 这个接口返回的格式如下. { "weatherinf ...

  10. mySQL中replace的用法

    MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪   mysql replace实例说明: ...