链接:
来源:牛客网
题目描述
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
我们首先用下面这个程序来打个表:
#include<iostream>
#include<cstring>
using namespace std;int main()
{int a[1000];int n=3,m,j,k,i,T;for (n=1;n<=50;n++){int ans=0;memset(a,0,sizeof(a));for (i=1;i<=n;i++){for (j=i;j<=n;j++){if (j%i==0) {a[j]==1?a[j]=0: a[j]=1;}}}for (i=1;i<=n;i++)ans += a[i];cout<<"n = "<<n<<":"<<ans<<endl;}
}
结果是这样的:
n = 1:1
n = 2:1
n = 3:1
n = 4:2
n = 5:2
n = 6:2
n = 7:2
n = 8:2
n = 9:3
n = 10:3
n = 11:3
n = 12:3
n = 13:3
n = 14:3
n = 15:3
n = 16:4
n = 17:4
n = 18:4
n = 19:4
n = 20:4
n = 21:4
n = 22:4
n = 23:4
n = 24:4
n = 25:5
n = 26:5
n = 27:5
n = 28:5
n = 29:5
n = 30:5
n = 31:5
n = 32:5
n = 33:5
n = 34:5
n = 35:5
n = 36:6
n = 37:6
n = 38:6
n = 39:6
n = 40:6
n = 41:6
n = 42:6
n = 43:6
n = 44:6
n = 45:6
n = 46:6
n = 47:6
n = 48:6
n = 49:7
n = 50:7
所以由此得出规律:
#include<iostream>
#include<cmath>
using namespace std;int main()
{long long n,m,j,i,T;cin>>n;cout<<(long long)sqrt(n)<<endl;return 0;
}
本文发布于:2024-01-28 22:01:31,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170645049310585.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |