求帮助

B2092 开关灯

windy34 @ 2024-01-14 09:48:50

这怎么写,求大佬帮助。


by __Tonycyt__ @ 2024-01-14 09:54:03

@windy34 最后只有完全平方数会亮


by __Tonycyt__ @ 2024-01-14 09:58:53

证明:

最后亮着的都是因数个数为奇数的数,由因数个数定理,设原数为 a=p_1^{\alpha_1}\times p_2^{\alpha_2}\times\dots\times p_k^{\alpha_k},则因数个数为 (\alpha_1+1)\times(\alpha_2+1)\times\dots\times (\alpha_k+1),因为因数个数为奇数,所以 \alpha_1+1,\alpha_2+1,\dots,\alpha_k+1 均为奇数,则 \alpha_1,\alpha_2,\dots,\alpha_k 均为偶数,那么 a 就是完全平方数


by __Tonycyt__ @ 2024-01-14 09:59:50

如果看不懂就自学一下最基础的数论知识,或者尝试暴力枚举。


by windy34 @ 2024-01-14 09:59:56

@Tonycyt 好的,在写,谢谢。


by timmyliao @ 2024-01-14 10:13:28

AC(经供参考)

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    for(int i=1;i*i<=n;i++) cout<<i*i<<" ";
    return 0;
}

by windy34 @ 2024-01-17 18:30:11

@timmyliao 感谢!


|