题目大意:将范围从1~pow(2,64)-1内的super power输出。super power的定义:一个数x至少存在两种x=pow(i,k),(k!=1)。

题解: 注意数据范围2的64次方-1,而long long 的范围是2的63次方-1,所以要用unsigned long long。

一个数x至少存在两种幂形式,说明这个幂可以拆开,即这个幂不是质数。

最小非质数(1除外)是4,所以我们只需要枚举2的16次方-1就可以了。

指数只需要枚举1~64就可以了。如果指数非质数,就放到集合中。

判溢出:INF=2的64-1,如果当前值ans满足ans>INF/i时,下一步一定会溢出,所以直接跳过就可以了。

最后把放入set中

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
const int N=;
const ll INF=(<<)-;
bool prime[N];
set<ll>se;
bool check(int x)
{
int c=sqrt(x+);
for(int i=;i<=c;i++){
if(x%i==) return ;
}
return ;
}
int main()
{
for(int i=;i<=;i++)
if(check(i)) prime[i]=;
for(int i = ; i <= ; i++){
ll ans = ;
for(int j = ; j <= ; j++){
ans *= i;
if(!prime[j]) se.insert(ans);
if(ans > INF / i) break;
}
}
se.insert();
set<ll>::iterator it;
for(it=se.begin();it!=se.end();it++){
cout<<*it<<endl;
}
return ;
}

The Super Powers UVA - 11752的更多相关文章

  1. The Super Powers UVA 11752 分析分析 求无符号长整形以内的数满足至少可以用两种不同的次方来表示。比如64 = 2^6 = 8^2; 一个数的1次方不算数。

    /** 题目:The Super Powers UVA 11752 链接:https://vjudge.net/contest/154246#problem/Y 题意:求无符号长整形以内的数满足至少可 ...

  2. The Super Powers UVA - 11752(合数幂)

    题意: 求1~2^64-1之间所有的 至少是两个不同的正整数的幂的数  升序输出 一个数的合数次幂即为这样的数 找出1~2^64-1中所有数的合数次幂 用set存起来(既能防止重复 又能升序) 最后输 ...

  3. uva 11752 The Super Powers 素数+大数判断大小

    题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...

  4. The Super Powers

    The Super Powers Time Limit: 1000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu [Subm ...

  5. UVA11752 The Super Powers

    /* UVA11752 The Super Powers https://vjudge.net/contest/153365#problem/Y 数论 注意a^n=b要用除法求,并且求得的n比实际大1 ...

  6. uva 11752 - The Super Powers

    这个题   任意一个数,他的幂只要不是质数则可以分解成两个数的乘   判断有没有溺出  i×i  则用最大的那个数 Max/i < i 吗 #include<iostream> #i ...

  7. UVa 11752 (素数筛选 快速幂) The Super Powers

    首先有个关键性的结论就是一个数的合数幂就是超级幂. 最小的合数是4,所以枚举底数的上限是pow(2^64, 1/4) = 2^16 = 65536 对于底数base,指数的上限就是ceil(64*lo ...

  8. UVa 11752 - The Super Powers 数学

    请看这个说明http://blog.csdn.net/u014800748/article/details/45914353 #define _CRT_SECURE_NO_WARNINGS #incl ...

  9. uva 11752 The Super Powers (数论+枚举)

    题意:找出1~2^64-1中 能写成至少两个数的幂形式的数,再按顺序输出 分析:只有幂是合数的数才是符合要求的.而幂不会超过64,预处理出64以内的合数. 因为最小的合数是4,所以枚举的上限是2的16 ...

随机推荐

  1. Servlet(五)----Request登录案例

    ##  案例:用户登录 准备工作: 准备Maven  配置pom.xml <?xml version="1.0" encoding="UTF-8"?> ...

  2. 测试leader的职责

    为了项目过程管理更加紧凑,控制项目测试进度.测试质量, 需要指定一个测试leader,测试leader的主要职责是测试边界的划定,整体进度的把控,项目风险识别和应对.具体工作内容如下: 一.需求阶段: ...

  3. Java的集合框架综述

    集合 用于存储和管理数据的实体被称为数据结构(data structure).数据结构可用于实现具有不同特性的集合对象,这里所说的集合对象可以看作一类用于存储数据的特殊对象. 集合内部可以采用某种数据 ...

  4. C 实战练习题目3

    题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 程序分析: 假设该数为 x. 1.则:x + 100 = n2, x + 100 + 168 = m2 ...

  5. POS-商户手续费-从生活剖析,通俗易懂

    前言 我们大家日常都在使用pos机,尤其是买衣服,吃火锅,都习惯刷卡.pos机带来的消费便利,也正是市场 对经济的一种促进手段. 今天主要分享下商户手续费这个概念,引出这个概念前,我们先大概说点别的东 ...

  6. CSS 常用属性之 阴影

    text-shadow 是一个给文字添加阴影的属性 text-shadow: X偏移量,Y偏移量,模糊值,颜色  可以同时设置多个文本阴影,需要用逗号隔开 如果是需要兼容低版本的浏览器 -webkit ...

  7. Excel决定吃什么

    1.Excel填充 在第一列填充1到100 (1)下拉填充 (2)填充——自动填充——序列 2.第二列加权填上自己吃的午饭 3.vloopup函数(列查找) 几乎都使用精确匹配,该项的参数一定要选择为 ...

  8. js拖拽效果的实现及原理

    元素拖拽分成3个步骤:按下鼠标,移动鼠标,松开鼠标. 拖拽原理:按下拖拽元素后开始监听文档中鼠标移动事件,然后再监听鼠标松开事件:鼠标移动时,元素div要随着鼠标一起移动,需要计算元素div位移的距离 ...

  9. springboot项目启动-自动创建数据表

    很多时候,我们部署一个项目的时候,需要创建大量的数据表.例如mysql,一般的方法就是通过source命令完成数据表的移植,如:source /root/test.sql.如果我们需要一个项目启动后, ...

  10. echarts整理

    保存一些常用的echarts图表及制作方法