博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva10200(Prime Time) 卡精度
阅读量:6793 次
发布时间:2019-06-26

本文共 853 字,大约阅读时间需要 2 分钟。

分析:题目给出一个公式f(n)=n*n+n+41,输入a和b,0<=a<=b<=10000,

问在区间[a,b]中满足f(k)是素数的数所占的百分比。

b的范围不大,直接暴力素数打表即可。

最后输出保留两位小数,卡精度,必须在结果加上1e-5(或者更小)保证精度。

例如,输入 6000 9999,不加1e-5输出37.67(真实值为37.675),加上1e-5输出37.68。

#include
bool a[100010042];void f(){ for(int i=4;i<100010042;i+=2) a[i]=1; for(int i=3;i<100010042;i++) { if(a[i]==0) { for(int j=i+i;j<100010042;j+=i) a[j]=1; } }}int ans[10011];int main(){ f();ans[0]=1; for(int i=1;i<10001;i++) { if(!a[i*i+i+41]) ans[i]=1; ans[i]+=ans[i-1]; } int a,b; while(scanf("%d%d",&a,&b)!=-1) if(a==0) printf("%.2lf\n",100*(double)ans[b]/((b+1)*1.0)+1e-5); else printf("%.2lf\n",100.0*(1.0*(ans[b]-ans[a-1]))/(1.0*(b-a+1))+1e-5); return 0;}
View Code

 

转载于:https://www.cnblogs.com/ACRykl/p/8626865.html

你可能感兴趣的文章
office工具栏内的图标字体变的很大很虚
查看>>
IIS站点下多应用程序 C#获取根目录方法
查看>>
手机影音第五天 视频列表的显示与播放以及个别牌子手机播放的问题
查看>>
软件下载链接获取方法
查看>>
如何升级Nginx到最新稳定版
查看>>
什么是Git
查看>>
fstab文件中的UUID查看
查看>>
Centos 安装Radius manager
查看>>
我的友情链接
查看>>
创意思维练习方法
查看>>
5 SQL语句之DDL
查看>>
mysql主从如何取消
查看>>
bash的配置文件总结
查看>>
回车与换行的区别
查看>>
linux中基于时间的增量备份
查看>>
配置Nginx支持WSS(WebSocket)
查看>>
Oracle闪回查询恢复delete删除数据
查看>>
一键优化系统脚本 for centos6.x
查看>>
vpxadmin expire vpxadmin密码过期
查看>>
扩展Python模块系列(三)----参数解析与结果封装
查看>>