Sicily-1009 梅森素数
一.梅森素数
素数有无穷多个,却只有极少量的素数能表示成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的时候是合数。
二.过程
- 给出2-64里面能符合梅森素数且是合数的指数数组。
- 一个一个数进行判断,用判断素数的方法,如果是合数的话就打印出它的素数乘法因子。
三.源码(超时)
超时代码:
//
// 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 梅森素数的更多相关文章
- nefu 120 梅森素数
题意:给出p(1<p<=62),让你求Mp=2^p-1是否为梅森素数. 梅森素数:若p为素数,且Mp=2^p-1也是素数,则Mp为梅森素数.若p为合数,Mp=2^p-1一定为合数若p为素数 ...
- 加入GIMPS项目,寻找梅森素数!
截止到目前为止人类共找到了50个梅森素数,其中最后16个梅森素数都是通过GIMPS项目找到的. 为了激励人们寻找梅森素数和促进网格技术发展,总部设在美国旧金山的电子前沿基金会(EFF)于1999年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是一个素 ...
- 梅森素数应用 nefu 120
梅森素数 定义: if m是一个正整数 and 2^m-1是一个素数 then m是素数 if m是一个正整数 and m是一个素数 then M(m)=2^m-1被称为第m个梅森数 if p是一个素 ...
- Codeforces 225E 梅森素数
注:梅森素数,数组表示的是2^n-1的n,指数. #include <stdio.h> #include <math.h> ; ; typedef long long ll; ...
- LA2955 Vivian难题——梅森素数
题意 输入 $k$(1 \leq k \leq 100)个正整数 $p_1, p_2, ..., p_k$(1 < p_i < 2{31}),找出 $k$ 个非负整数 $e_i$ 使得 $ ...
- java实现第四届蓝桥杯梅森素数
梅森素数 题目描述 如果一个数字的所有真因子之和等于自身,则称它为"完全数"或"完美数" 例如:6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 ...
- nefu120梅森素数
#include<iostream> #include<cstdio> using namespace std; typedef long long ll; const int ...
- sicily 1009. Mersenne Composite N
Description One of the world-wide cooperative computing tasks is the "Grand Internet Mersenne P ...
随机推荐
- Mybaits入门之起航
前言 Mybaits技术现在很多公司都在使用,它提供了简单的API可以快速进行数据库操作,所以不管是自己做系统还是找工作都有必要了解一下. 学习一门技术如果是入门的话要么买书要么就是阅读官方的文档,而 ...
- 【转】QT QString, wchar_t *, TCHAR, CString和其他字符或字符串类型的转化
//QString to wchar_t *: const wchar_t * encodedName = reinterpret_cast<const wchar_t *>(fileNa ...
- Volley 设置 RetryPolicy 不起作用, 重复提交
RT, Google后有的说是 将超时时间设置为0, 但是还是会重试提交, 解决方案如下: static HurlStack stack = new HurlStack(){ @Override pr ...
- Linux 系统之Sysvinit
子贡问为仁.子曰:“工欲善其事,必先利其器.居是邦也,事其大夫之贤者,友其士之仁者.”——孔子(春秋)<论语·卫灵公> [工欲善其事,必先利其器] 掌握一门技术,知道其发展历程是非常重要的 ...
- ASCII码图
图片转ASCII码图 效果图 基本思路 把图片每个像素点的信息拿出来,最重要的是拿到rgb的值 把每个像素点由rgb转成灰度图像,即0-255 给0-255分级,把每个等级的像素点转换成ascii ...
- Qt 智能指针学习(7种QT的特有指针)
从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ #include <QApplication> #include <QLabel> int main(int arg ...
- MFC模式对话框与非模式对话框 消息处理顺序
对话框有两种创建方式:DoModal和Creat. 其中DoModal创建的是模态的对话框,而Creat创建的是非模态的对话框下面总结下他们的不同. 对于模态的对话框,在该对话框被关闭前,用户将不能在 ...
- ThinkPHP 3.1.2 查询方式的一般使用1
public function show(){ echo "访问了index模块下的show方法!!"; echo "欢迎你".$_GET['name'].'你 ...
- 中国天气网API
中国天气网有三个 API 适用于不同场合的使用. http://m.weather.com.cn/data/101050101.html 这个接口返回的格式如下. { "weatherinf ...
- mySQL中replace的用法
MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪 mysql replace实例说明: ...