51nod 1536 不一樣的猜數遊戲

2021-08-19 13:55:27 字數 1069 閱讀 6213

1536 不一樣的猜數遊戲

codeforces

基準時間限制:1 秒 空間限制:131072 kb 分值: 20 

難度:3級演算法題

瓦斯亞和皮台亞在玩乙個簡單的遊戲。瓦斯亞心中想乙個整數x,它是1到n之間的整數。然後皮台亞嘗試著猜這個數字。

皮台亞每次問乙個形如這樣的問題:這個x是y的倍數嗎?

這個遊戲的流程是這樣的:首先皮台亞把所有他想問的形如上述的問題都問出來(當然他也可以不問任何問題),然後瓦斯亞針對每乙個問題給出yes或no的答案。最後皮台亞根據這些問題推斷出瓦斯亞心中所想的x是哪個數字。

現在皮台亞想知道他最少要問多少個問題才能猜出1到n之間的那個數字。也就是說不管x是1到n之間的哪個數字只要問那些問題就能夠確定那個數字了。

樣例解釋:

可以問是否是2,3,4這些數字倍數的三個問題。

如果都不是,說明是1.

如果是4的倍數,說明是4.

如果是3的倍數說明是3.

否則就是2。

沒有比這更少的問題數目了。

input

單組測試資料。

第一行輸入乙個整數n (1≤n≤1000)。

output

輸出最少的問題數目。
input示例

樣例輸入1

4

output示例

樣例輸出1

3

思路:要猜出1- n的某個數字,即要判斷出 1-n的所有數字,即每個數字的標誌都是不同的,那麼就是用質數標記,而對於2,4,8來說用2來標記是不行的,因此還要對質數的次方做標記即可。

code :

#include#includeusing namespace std;

const int max_n=1005;

int n;

bool boo[max_n];

int main()

}int ans=0;

for(int i=0;i<=n;++i)

if(boo[i]==true) ans++;

cout<

51nod 1536 不一樣的猜數遊戲

任何乙個大於1的自然數 n,如果n不為質數,那麼n可以唯一分解成有限個質數的乘積 如 n p1 a1p2 a2 pn an 如果某個數字是p的倍數,你無法知道這個數字是p x或者p y,所以要把p在n範圍內的每個倍數都要詢問一次,每個素數都要這樣詢問,這樣就可以確定1 n的任意乙個數字了。inclu...

51Nod1536 不一樣的猜數遊戲

瓦斯亞和皮台亞在玩乙個簡單的遊戲。瓦斯亞心中想乙個整數x,它是1到n之間的整數。然後皮台亞嘗試著猜這個數字。皮台亞每次問乙個形如這樣的問題 這個x是y的倍數嗎?這個遊戲的流程是這樣的 首先皮台亞把所有他想問的形如上述的問題都問出來 當然他也可以不問任何問題 然後瓦斯亞針對每乙個問題給出yes或no的...

51 Nod 不一樣的猜字遊戲

1536 不一樣的猜數遊戲 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 瓦斯亞和皮台亞在玩乙個簡單的遊戲。瓦斯亞心中想乙個整數x,它是1到n之間的整數。然後皮台亞嘗試著猜這個數字。皮台亞每次問乙個形如這樣的問題 這個x是y的倍數嗎?這個遊戲的流程是這樣的 首先...