51nod 1333 無聊的數學家

2021-07-26 00:10:33 字數 961 閱讀 1748

很有趣的題目。

首先,怎麼知道對方無法100%猜中?

考慮對方什麼時候100%猜中。顯然是拿了個質數。

因此和s一定不可以被表示成質數+1,不然對方100%猜中。

b說的那句話也就是告訴了c這樣的資訊「我的數不是質數+1」

那麼為什麼c就猜出來了呢?肯定有唯一解!

假設c拿到的是p, p為合數。

對於1*p=p這組拆分,p+1顯然不是質數+1(p是合數嘛)

唯一解就肯定是1和p,那麼其餘所有解xy=p,都會有x+y-1是質數。

因此知道了p=s-1。

列舉x和y用n log n篩就行了。

#include

#include

#define fo(i,a,b) for(i=a;i<=b;i++)

using

namespace

std;

typedef

long

long ll;

const

int maxd=5000000+10;

int i,j,k,l,t,n,m,top;

ll pri[1000000],bz[maxd];

bool pd[maxd];

int main()

}fo(i,1,maxd-10) bz[i]=i;

fo(i,2,maxd-10)

fo(j,i,(maxd-10)/i)

if (pd[i+j-1]) bz[i*j+1]=0;

fo(i,1,maxd-10)

if (!pd[i]) bz[i+1]=0;

bz[1]=bz[2]=0;

fo(i,1,maxd-10) bz[i]+=bz[i-1];

int ca;

scanf("%d",&ca);

while (ca--)

}

51Nod 1333 無聊的數學家們

問題來自於乙個精彩的故事 有三個數學家,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的值是這兩個數的 積 而且這三個數學家的數學...

51nod 1333 無聊的數學家們

問題來自於乙個精彩的故事 有三個數學家,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的值是這兩個數的 積 而且這三個數學家的數學...

數學家劉徽的故事

劉徽 中國數學史上乙個非常偉大的數學家,他的傑作 九章算術注 和 海島算經 是中國最寶貴的數學遺產。他的主要著作有 九章算術注 10卷 重差 1卷,至唐代易名為 海島算經 九章重差圖 l卷。可惜後兩種都在宋代失傳。九章算術 約成書於東漢之初,共有246個問題的解法。在許多方面 如解聯立方程,分數四則...