(唯一分解定理,数论分析)Sigma Function


题意:对一个给定的n,从1到n,他们的σ[n]中有几个是偶数。pi 是n的素数因子,ei 是对应素因子的个数。
分析:对所有的素数,如果p为2,则那一项一定为奇数,对于不是2的素数,可以发现当ei+1为奇数的时候(因式分解你就懂了),即pi这个素因子出现偶数次时,那一项项也为奇数。

若使得那一整个式子为奇数,那么对于每一项只有两种方式,要么为2,要么p的为偶数次,再进一步思考,这完全可以通过n^2 和 2*n^2来得到所有满足的数。

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>

using namespace std;
typedef long long ll;
const int N = 1e6 + 10;

int main()
{
   
    int t, p = 0;
    ll n;
    scanf("%d", &t);
    while(t--)
    {
   
        p++;
        ll x, y;
        scanf("%lld", &n);
        x = (ll)sqrt(n);//计算n中x^2的个数
        y = (ll)sqrt(1.0 * n / 2);//计算n中2*x^2的个数
        printf("Case %d: %lld\n", p, n - x - y);
    }
    return 0;
}

参考博客:https://www.cnblogs.com/hchlqlz-oj-mrj/p/4703593.html
https://www.cnblogs.com/qq2424260747/p/4930861.html

全部评论

相关推荐

2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务