1. 程式人生 > >185D】星光晚餐(數論,結論,思維,模型)

185D】星光晚餐(數論,結論,思維,模型)

題幹:

Johnson和Nancy要在星光下吃晚餐。這是一件很浪漫的事情。

為了增加星光晚餐那浪漫的氛圍,他拿出了一個神奇的魔法棒,並且可以按照一定的規則,改變天上星星的亮暗。

Johnson想考考Nancy,在他揮動魔法棒後,會有多少顆星星依舊閃耀在天空。他知道,Nancy一定會一口說出答案。

Nancy當然知道怎麼做啦,但她想考考你!

Johnson先將天上n個星星排成一排,起初它們都是暗的。

他告訴他的妹子,他將揮動n次魔法棒,第i次揮動會將編號為i的正整數倍的星星的亮暗反轉,即亮的星星轉暗,暗的星星轉亮。

Johnson想問Nancy,最終會有多少個星星依舊閃亮在天空。

輸入描述:

一個整數n,含義請見題目描述。

輸出描述:

一個整數ans,即n次操作後會有多少個星星依舊閃亮。

示例1

輸入

複製

3

輸出

複製

1

示例2

輸入

複製

7

輸出

複製

2

備註:

對於60%的資料:n≤2×106
對於100%的資料:n≤1018

解題報告:

    有一個相關的問題模型 傳送門

   總之結論就是我們需要知道的是n以內有多少個完全平方數,那麼就是 ‘開平方向下取整’ 個平方數。所以直接開平方。

AC程式碼:

#include<bits/stdc++.h>
#define ll long long 
using namespace std;
ll n;
int main()
{
    scanf("%lld",&n);
    printf("%lld",(long long)(sqrt(n)));
}