51Nod1333--无聊的数学家们

讲述了三个数学家通过逻辑推理找出特定数值的故事。问题在于找出在给定区间内满足特定条件的数值数量及其总和。

题意 : (蛮有意思的一个小故事) 有三个数学家,A,B与C。A选了两个正整数x与y满足x<=y。然后,A将x+y的值告诉了B,A又将x*y的值告诉了C。B与C都不知道x与y分别是什么,也不知道对方得到的值是什么。但B和C知道A告诉B的值是某两个正整数的“和”而告诉C的值是这两个数的“积”。而且这三个数学家的数学功底足够好。下面是B与C进行的对话:
B:“我确定你一定没有百分百的把握猜中我得到的数。”
C:“谢谢你的提示。现在我能确定你获得的数是 S。”
故事结束,回到问题。
这个故事中一共涉及3个未知参数x,y与S,其实由于S=x+y,所以实际一共只有两个未知参数而已。你可以带入一些正整数让这个故事没有逻辑漏洞。现在问题来了,在区间[L,R]上存在多少个数值t,使S=t时能找到对应的x与y,并让这个故事成立。输出这些t的和(1<=L<=R<=5,000,000)。

------------------------------------------------------------此后一千里------------------------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

 

 

稍微想了一下,发现有几个关键点。

一是如果C能百分百确定x和y,那么x*y一定是个质数,即xy中一个为1,一个为质数

然后反推出x+y-1不是个质数,因为B肯定C不能百分百确定

二是C根据B的言语知道x+y-1不是个质数就能推出自己的数,那说明所有x*y=a*b里面,只有一组ab不满足a+b-1是质数

然后发现x*y总能拆成1*x*y,而根据上面的推理,x*y不是个质数,所以唯一拆分即为x*y,1,所以其他拆分如果不满足a+b-1是个质数,那么这个S就不可行

然后每个S可行与否可以去筛出来

代码 :

#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
#define low(x) ((x)&(-(x)))
#define LL long long
#define eps 1e-9
using namespace std;

#define int int
inline int Max(int a,int b) {return a>b?a:b;}
inline int Min(int a,int b) {return a<b?a:b;}
inline int Abs(int a) {return a>0?a:-a;}
inline int Sqr(int a) {return a*a;}
#undef int

#define MAXN 5000005

LL pre[MAXN];bool ok[MAXN];
bool mk[MAXN];int pri[MAXN],cnt,n;

void Pre(int n) {
    for(int i=2;i<=n;i++) {
        ok[i]=1;
        if(!mk[i]) pri[++cnt]=i;
        for(int j=1;j<=cnt&&i*pri[j]<=n;j++) {
            mk[i*pri[j]]=1;
            if(i%pri[j]==0) break;
        }
    }
    for(int i=2;i<=n;i++) 
        for(int j=i+i;j<=n;j+=i) 
            ok[j]&=!mk[i+j/i-1];
    for(int i=2;i<=n;i++) 
        pre[i]=pre[i-1]+(ok[i-1]&&mk[i-1]?i:0);
}

int main() {
    int T,l,r;cin>>T;
    Pre(5000000);
    while(T--) {
        scanf("%d%d",&l,&r);
        printf("%lld\n",pre[r]-pre[l-1]);
    }
    return 0;
}
View Code

 

转载于:https://www.cnblogs.com/ihopenot/p/6539236.html

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值