做完这道题,我明白了人生的一个巨大道理,那就是: 其他题研究两下,做出来几百行。数论码字前研究半天,做出来十几二十行。做完特别没有成就感。。。

  首先说下这题题意:首先,定义一个函数f[n],即为他所有因子和,他自带一个叼叼的公式

,然后问对一个给定的n,从1到n,他们的f[n]中有几个是偶数。。。pi 是n的素数因子,ei 是对应素因子的个数。。

我当时的思路历程: 首先比较简单,如果这k个式子全是奇数,那么f[n]是奇数,只要出现一个偶数,那么结果便是偶数,所以答案应该非常接近n,n大小在1万亿,所以不可能是普通遍历。。同时偶数非常多,那么可以转换为求奇数个数。。。

对于所有的素数。。如果p为2,那么那个式子一定为奇数,所以假如某个数a 满足条件,那么多给他一个素因子2,他肯定也满足条件,无论多给几个,他都满足条件(当然,最后发现只需要多给一个)    ,然后对于不是2的素数,可以发现当ei+1为奇数的时候,也就是pi这个素因子出现偶数次的时候,这一项也为奇数。那么可以想来对于某个数,他是平方得来的,那么他一定满足条件。。比如: 225。 225是的15的平方,虽然他的素因子3、5都不是2那么直接,但由于他是平方得来的,那么分解出来是 3*3*5*5,所以每一项都是奇数,所以225满足条件。基础知道了。现在拿一些数找找规律(虽然当时我是找到规律才明白的思路0.0),我当时列举了前一百个。。可以发现,1*1 2*2 3*3 4*4 5*5 。。。 都满足条件(这是必然的),那么再细化一下,对于3的次方倍来说: 9 27 81 。。 其中27因为素因子3出现次数为奇数次,不满足条件,舍去,剩下的9、81就可以看成是3的平方和9的平方。。对于每个数都是这个规律,也就是出现奇数次不满足条件。所以我们的第二个推论可以验证了这部分的数量。。同时,对于每个平方数 如 9 那么 18 也满足条件,但36虽然也满足条件,却不需要再在这个时候记入计算,因为36还等于6*6,也就是(2*3)*(2*3),所以,也可以看出规律,对于每个平方数的2倍也满足条件。。。那么,正是因为我们不去重复计算36,所以我们算出来的不会有重叠的。。

  co=2*((int)sqrt(a));  短短一句就可以解决。。。。(我当时想了半天,真正意义上的半天,从下午到深夜。。)

  最最后,要解决的就是多算的。。。比如:n=100,那么10 * 10==100,我们不能再去算2*10*10,但相信前面一段出来,这个也就没什么难度了。。。

  AC代码:

 #include<stdio.h>
#include<math.h>
int fun(long long a)
{
int co=;
int s=(int )sqrt(a);
while(s>)
{
if((long long)s*s*>a) co++;
else break;
s--;
}
return co;
}
int main()
{
long long a;
int t,co=,g=;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&a);
co=*((int)sqrt(a));
co-=fun(a);
printf("Case %d: %lld\n",g++,a-co);
}
return ;
}

哎,没怎么优化

Sigma Function的更多相关文章

  1. Uva 11395 Sigma Function (因子和)

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=109329#problem/C   题目在文末 题意:1~n (n:1~1012)中,因子 ...

  2. LightOJ1336 Sigma Function(约数和为偶数的个数)

    Sigma Function Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit ...

  3. LightOJ 13361336 - Sigma Function (找规律 + 唯一分解定理)

    http://lightoj.com/volume_showproblem.php?problem=1336 Sigma Function Time Limit:2000MS     Memory L ...

  4. 【LightOJ1336】Sigma Function(数论)

    [LightOJ1336]Sigma Function(数论) 题面 Vjudge 求和运算是一种有趣的操作,它来源于古希腊字母σ,现在我们来求一个数字的所有因子之和.例如σ(24)=1+2+3+4+ ...

  5. Sigma Function (平方数与平方数*2的约数和是奇数)

    Sigma Function https://vjudge.net/contest/288520#problem/D Sigma function is an interesting function ...

  6. D - Sigma Function 1~n内有多少个约数和为偶数

    /** 题目:D - Sigma Function 链接:https://vjudge.net/contest/154246#problem/D 题意:求1~n内约数和为偶数的数的个数. 思路:一个数 ...

  7. LightOJ1336 Sigma Function —— 质因子分解、约数和为偶数

    题目链接:https://vjudge.net/problem/LightOJ-1336 1336 - Sigma Function    PDF (English) Statistics Forum ...

  8. Sigma Function 数学 因子求和

    Sigma function is an interesting function in Number Theory. It is denoted by the Greek letter Sigma ...

  9. Sigma Function (LightOJ - 1336)【简单数论】【算术基本定理】【思维】

    Sigma Function (LightOJ - 1336)[简单数论][算术基本定理][思维] 标签: 入门讲座题解 数论 题目描述 Sigma function is an interestin ...

  10. LightOJ - 1336 - Sigma Function(质数分解)

    链接: https://vjudge.net/problem/LightOJ-1336 题意: Sigma function is an interesting function in Number ...

随机推荐

  1. CentOS TinyProxy http(s)上网代理及置代理上网的方法

    http://blog.csdn.net/fwj380891124/article/details/42168683 http://computer.uoh.edu.cn/linux/2159.htm ...

  2. 设计模式のAbstractFactory(虚拟工厂)----创建模式

    一.产生背景 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最 ...

  3. Alex网络

    alexNet共有八层网络卷积层1:输入224*224*3 卷积核11*11*3*96 步长为4 然后是ReLU.局部归一化.3*3步长为2的最大值池化卷积层2:输入为28*28*96 卷积核5*5* ...

  4. python之常用模块(续)

    time模块 random模块 sys模块 os模块 序列化模块  time模块 有三种方式表示 在Python中,通常有三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串 ...

  5. [Windows]查看运行进程的参数【wmic】

    参考  https://www.cnblogs.com/top5/p/3143827.html     和 https://blog.csdn.net/swazer_z/article/details ...

  6. 【转】iOS弹幕库OCBarrage-如何hold住每秒5000条巨量弹幕

    最近公司做新需求, 原来用的老弹幕库, 已经无法满足需要. 迫不得已自己写了一套弹幕库OCBarrage. 这套弹幕库轻量, 可拓展, 高度自定义, 超高性能, 简单易上手. 无论哪家公司软件的性能绝 ...

  7. 【vue】vue中引入jquery

    简洁版: 第一步:首先在package.json中输入"jquery":"^3.2.1",其中“3.2.1”为jquery版本号,按需修改 注:package. ...

  8. 一.html介绍

    一.html1.就是一个文本文档,写标记语言,由浏览器软件进行渲染得到想要的网页效果2.版本:h4,h5 二.常用的h5标签1.块状标签: p:段落 div:块 span:同行块 h1-h6:6级标题 ...

  9. Redis入门篇(安装与启动)

    一.Redis介绍 Redis是NoSql的一种,在弄清楚Redis是个什么玩意之前,先了解下NoSql是什么.1.什么是NoSql NoSql,全名:Not Only Sql,是一种非关系型数据库, ...

  10. PostgreSQL安装和使用

    青岛OJ系统用的关系型数据库是PostgreSQL,为此对PostgreSQL大致了解下. 今天的主要话题围绕下面两个方面: PostgreSQL安装 PostgreSQL使用 一.PostgreSQ ...