题意:

给出a、b区间,判断区间内素数所占百分比

思路:

注意提前打表和控制精度1e-8的范围足够用了

细节:

精度的处理

判断素数的方法(且返回值为bool)

数据类型的强制转换

保存素数个数

提前进行打表和保存区间素数个数,每次给出a、b直接输出答案就行。

 #include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
//const int N=40*40+40+41;
const int N=; int ans[N];
bool pr(int x)//判断素数
{
for(int i=; i*i<=x; i++)
{
if(x%i==)
return ;
}
return ;
} void db()
{
// ans[0]=0;
// memset(ans,0,sizeof(ans));
// for(int i=0; i<=N; i++)
// ans[i]=ans[i-1]+pr(i*i+i+41);
ans[]=;
for(int i=; i<=N; i++)
ans[i]=ans[i-]+pr(i*i+i+);
} int main()
{
db();
int a,b;
while(~scanf("%d %d",&a,&b))
{
// int sum=0;
// for(int i=a;i<=b;i++)
// sum+=prime(i);
int sum=b-a+;
// printf("%.2f\n",((ans[b]-ans[a-1])/sum)*100.0+1e-8);//这样的话第二三组数据输出为0.00
//*100.0得放在分子上,相除后再*100.0是错误的
printf("%.2f\n",(100.0*(ans[b]-ans[a-])/sum)+1e-);
// printf("%.2f\n",sum*1.0/(ss*1.0)+1e-8);
}
return ;
}

UVA-10200-Prime Time-判断素数个数(打表预处理)+精度控制的更多相关文章

  1. UVA 10200 Prime Time 水

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

  2. UVA 10200 Prime Time【暴力,精度】

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

  3. UVA - 10200 Prime Time 关于 double类型 卡精度

    题意: 给定一个区间,a到b, n在区间内,有一个计算素数的公式,n*n+n+41,将n带进去可以得出一个数字.但是这个公式可能不准确,求出这个公式在这个区间内的准确率. 直接模拟就好了,不过要 注意 ...

  4. UVA 10200 Prime Time (打表)

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

  5. (Miller Rabin算法)判断一个数是否为素数

    1.约定 x%y为x取模y,即x除以y所得的余数,当x<y时,x%y=x,所有取模的运算对象都为整数. x^y表示x的y次方.乘方运算的优先级高于乘除和取模,加减的优先级最低. 见到x^y/z这 ...

  6. HDU 2138 How many prime numbers(Miller_Rabin法判断素数 【*模板】 用到了快速幂算法 )

    How many prime numbers Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  7. 如何判断一个数是否为素数(zt)

    怎么判断一个数是否为素数? 笨蛋的作法: bool IsPrime(unsigned n){    if (n<2)    { //小于2的数即不是合数也不是素数    throw 0;    ...

  8. POJ3126 Prime Path (bfs+素数判断)

    POJ3126 Prime Path 一开始想通过终点值双向查找,从最高位开始依次递减或递增,每次找到最接近终点值的素数,后来发现这样找,即使找到,也可能不是最短路径, 而且代码实现起来特别麻烦,后来 ...

  9. java判断一个数是否为素数[转]

    http://blog.csdn.net/lwcumt/article/details/8027586 import java.util.Scanner; //质数又称素数,是指在一个大于1的自然数中 ...

  10. c语言实践 判断一个数是不是素数

    int main() { int input = 0; scanf_s("%d",&input); if (input < 2) { printf("wro ...

随机推荐

  1. luoguP1290 欧几里德的游戏 [博弈论]

    题目描述 欧几里德的两个后代Stan和Ollie正在玩一种数字游戏,这个游戏是他们的祖先欧几里德发明的.给定两个正整数M和N,从Stan开始,从其中较大的一个数,减去较小的数的正整数倍,当然,得到的数 ...

  2. (转)Linux 多线程编程---pthread_testcancel()等讲解

    1.   所谓线程就是“一个进程内部的一个控制序列”.也就是一个进程内部的并行的基础! 2.    Linux进程可以看成只有一个控制线程:      一个进程在同一时刻只做一件事情.有了多个控制线程 ...

  3. *&m与m的区别

    int *a;int * &p=a; 把 int * 看成一个类型,a就是一个整型指针,p 是a的别名 #include<iostream> using namespace std ...

  4. jsp2自定义标签+属性

    前面说过jsp2自定义标签如果要加入属性需要设置属性的getter和setter方法.代码如下: public class GetParam extends SimpleTagSupport { pr ...

  5. 5-MySQL-Ubuntu-操作数据库的基本操作语句

    注意: (1)每一条sql语句都是以分号(;)结尾! (2)数据库的默认charset不支持中文,所以每次在创建数据库的时候要指定字符集charset=utf8; (一) 查看当前时间: select ...

  6. Solr6.6环境安装及core的创建(win7环境)

    1.下载solr6.6 并解压 地址: http://www.apache.org/dyn/closer.lua/lucene/solr/6.6.0 2.安装JDK1.8 地址: http://www ...

  7. vmstat - 报告虚拟内存的统计信息

    总览 vmstat [-n] [延时[次数]] vmstat [-V] 描述 vmstat 对系统的进程情况.内存使用情况.交换页和 I/O 块使用情况.中断以及 CPU 使用情况进行统计并报告相应的 ...

  8. Spring与Struts2 的整合使用

    Spring与Struts2 的整合使用 项目结构 再Struts2 中(还没有与Spring整合时),它创建Action类的依据 <action name="second" ...

  9. MySQL 开始

    安装,配置环境变量啥的,网上一抓一大堆,不说了.就说我再实际操作中遇到的问题. 1   添加自增列 点击apply,直接提示一个错误....百思不得其解..上图... 添加不了自增列....好恐怖.. ...

  10. kubeadm生成的token重新获取

    当你的token忘了或者过期,解决办法如下: 1.先获取token #如果过期可先执行此命令kubeadm token create #重新生成token#列出tokenkubeadm token l ...