HDU4548+素数
简单题。
/* */
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<iostream>
#include<queue>
#include<stack>
#include<math.h>
#include<map>
using namespace std;
const int maxn = ;
int IsPrime[ maxn ],IsSpecialPrime[ maxn ];
int GetSum( int x ){
int ans = ;
while( x ){
ans += x%;
x/=;
}
return ans;
} void init_prime(){
for( int i=;i<maxn;i+= )
IsPrime[i] = ;
for( int i=;i<maxn;i+= )
IsPrime[i] = ;
IsPrime[] = ;
IsPrime[] = ;
for( int i=;i<maxn;i++ ){
if( IsPrime[i]== ){
int t,delta;
delta = i*;
t = delta+i;
while( t<maxn ){
IsPrime[t] = ;
t += delta;
}
}
}
//for( int i=maxn-1;;i-- ){
//if( IsPrime[i]==1 ){
//printf("max=%d\n",i);
//break;
//}
//}
//memset( IsSpecialPrime,0,sizeof(IsSpecialPrime) );
for( int i=;i<maxn;i++ ){
if( IsPrime[i]==&&IsPrime[GetSum(i)]== ){
IsSpecialPrime[i] = ;
}
else{
IsSpecialPrime[i] = ;
}
}
for( int i=;i<maxn;i++ )
IsSpecialPrime[ i ] += IsSpecialPrime[ i- ];
}
int main(){
init_prime();
int ca;
scanf("%d",&ca);
int T = ;
while( ca-- ){
printf("Case #%d: ",T++);
int L,R;
scanf("%d%d",&L,&R);
printf("%d\n",IsSpecialPrime[R]-IsSpecialPrime[max(,L-)]);
}
return ;
}
HDU4548+素数的更多相关文章
- HDU4548 美素数
Problem Description 小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识. 问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素 ...
- HDU4548美素数——筛选法与空间换时间
对于数论的学习比较的碎片化,所以开了一篇随笔来记录一下学习中遇到的一些坑,主要通过题目来讲解 本题围绕:素数筛选法与空间换时间 HDU4548美素数 题目描述 小明对数的研究比较热爱,一谈到数,脑子里 ...
- HDU4548+筛素数
先筛出素数,再筛出美素数. 简单题. /* 筛素数 */ #include<stdio.h> #include<string.h> #include<stdlib.h&g ...
- Help Hanzo (素数筛+区间枚举)
Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000). (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼 ...
- Java 素数 prime numbers-LeetCode 204
Description: Count the number of prime numbers less than a non-negative number, n click to show more ...
- 求解第N个素数
任务 求解第 10,0000.100,0000.1000,0000 ... 个素数(要求精确解). 想法 Sieve of Eratosthenes 学习初等数论的时候曾经学过埃拉托斯特尼筛法(Sie ...
- 使用BitArray判断素数
首先显示1024范围内的所有素数,然后显示输入的数是否是素数.1024 是代码中计算的素数的范围,可以修改.计算平方根,是为了确定一个基数的范围.1024的平方根是32,两个超过32 的数相乘,肯定大 ...
- 查找素数Eratosthenes筛法的mpi程序
思路: 只保留奇数 (1)由输入的整数n确定存储奇数(不包括1)的数组大小: n=(n%2==0)?(n/2-1):((n-1)/2);//n为存储奇数的数组大小,不包括基数1 (2)由数组大小n.进 ...
- Openjudge 1.13-23:区间内的真素数(每日一水)
总时间限制: 1000ms 内存限制: 65536kB 描述 找出正整数 M 和 N 之间(N 不小于 M)的所有真素数.真素数的定义:如果一个正整数 P 为素数,且其反序也为素数,那么 P 就为 ...
随机推荐
- 合理使用mysql中的load data infile导入数据
基本语法: load data [low_priority] [local] infile 'file_name txt' [replace | ignore]into table tbl_name ...
- Object-C基础学习笔记(1)
1.苹果公司将Cocoa.Carbon.QuickTime和OpenGL等技术作为框架集:提供Cocoa组成部分有: (1)Foundation框架(有很多有用的,面向数据的低级类和数据结构): (2 ...
- 为什么要使用jQuery?
首先必须得了解为什么要学习JQuery,JQuery有哪些优点,当然是相对于传统的Javascript和DOM来说了,现在将JQuery的优势总结如下: 1,轻量级. JQuery非常小,压缩包只有1 ...
- css笔记——css 实现自定义按钮
css实现自定义按钮的样式实际上很早就有了,只是会用的人不是很多,里面涉及到了最基础的css写法,在火狐中按钮还是会显示出来,这时需要将i标签的背景设置为白色,同时z-index设置比input高一些 ...
- Java实战之04JavaWeb-03会话技术
一.会话技术简介 1.什么是会话,为什么需要会话技术? 会话:从打开一个浏览器,访问某个网站,到关闭这个浏览器的这个过程称为一次会话.http协议是状态的. 2.会话技术的分类 客户端存储技术:Coo ...
- Windows内存管理[转]
本文主要内容:1.基本概念:物理内存.虚拟内存:物理地址.虚拟地址.逻辑地址:页目录,页表2.Windows内存管理3.CPU段式内存管理4.CPU页式内存管理 一.基本概念1. 两个内存概念物理内存 ...
- android源码-安卓源码-Android源码下载-安卓游戏源码
android源码 高仿精仿金山手机卫士应用源码V1.2 高仿精仿金山手机卫士应用源码,该应用的级别实现了金山卫士的级别功能了,可以说跟现实中我们使用的金山卫士应用的功能几乎差不 人气:9286 ...
- Nginx日志按天分割
核心思想:使用crontab在每日23:59执行日志分割. 1.配置nginx日志信息,vim /etc/logrotate.d/nginx /var/log/nginx/*.log { nocomp ...
- WinForm条码打印
在这篇博客中,我曾经介绍了如何实现条形码的生成(生成jpg格式的图片),这篇博客借用上面生成的条码,能够实现条形码的打印功能. 出于批量打印操作的方便以及操作体验考虑,我选择了WinForm.功能很简 ...
- 基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
基于css3新属性transform,实现3d立方体的旋转 通过原生JS,点击事件,鼠标按下.鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示 实现原理:通过获取鼠 ...