zoukankan      html  css  js  c++  java
  • 洛谷 P1876 开灯

    传送门

    这道题凭什么是

    就因为它代码短?!

    还是我太菜了...

    第$i$盏灯的开关与否只由其约数个数决定,又有约数公式:

    当$n=p_1^{a_1}p_2^{a_2}...p_n^{a_n}$时,
    约数个数$=(a_1+1)(a_2+1)...(a_n+1)$
    要使灯亮着,则$(a_1+1)(a_2+1)...(a_n+1)$是奇数。
    于是$a_1, a_2, a_3, ... a_n$都是偶数。
    所以$n=m^2, m=p_1^{a_1/2}p_2^{a_2/2}...p_n^{a_n/2}$
    于是所有的完全平方数都满足条件。

    Code:

    #include<bits/stdc++.h>
    #define RG register
    using namespace std;
    long long n;
    int main()
    {
        scanf("%lld", &n);
        for(RG long long i=1;i<=(long long)sqrt(n);i++) printf("%lld ", i*i);
        return 0;
    }
  • 相关阅读:
    满血复活
    绝望,绝望、希望
    认真生活的态度
    星期一
    户外穿越
    认真准备
    早点休息
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
  • 原文地址:https://www.cnblogs.com/cj-xxz/p/7799674.html
Copyright © 2011-2022 走看看