lightOJ 1336 Sigma Function
2015-05-01 08:45
337 查看
题目链接:http://lightoj.com/volume_showproblem.php?problem=1336
题意::f(n)为n所有约数的和,给你一个数n,让你求从1到n中f(n)为偶数的数有多少个
思路:n=p1^e1*p2^e2...,则f(n)=(p1^(e1+1)-1)/(p1-1))*(p2^(e2+1)-1)/(p2-1))....
且(p1^(e1+1)-1)/(p1-1))=p1^0+p1^1......+p1^e1;
要使得f(n)为奇数,则(p1^(e1+1)-1)/(p1-1)到(pn^(en+1)-1)/(pn-1)都要为奇数;
1)当p=2时,2^(e+1)-1,一定为奇数;
2)当p!=2时,则p为奇数,则当e为偶数时(p^(e+1)-1)/(p-1)为奇数。
则需要统计1到n中的平方数个数和2倍的平方数的个数,得到的为1到n中f(n)为奇数的个数。
#include<stdio.h>
int main(){
int T,kase=0;
long long n;
scanf("%d",&T);
while(T--){
scanf("%lld",&n);
long long ans=0;
for(long long i=1;i*i<=n;i++){
ans++;
if(2*i*i<=n) ans++;
}
printf("Case %d: %lld\n",++kase,n-ans);
}
return 0;
}
题意::f(n)为n所有约数的和,给你一个数n,让你求从1到n中f(n)为偶数的数有多少个
思路:n=p1^e1*p2^e2...,则f(n)=(p1^(e1+1)-1)/(p1-1))*(p2^(e2+1)-1)/(p2-1))....
且(p1^(e1+1)-1)/(p1-1))=p1^0+p1^1......+p1^e1;
要使得f(n)为奇数,则(p1^(e1+1)-1)/(p1-1)到(pn^(en+1)-1)/(pn-1)都要为奇数;
1)当p=2时,2^(e+1)-1,一定为奇数;
2)当p!=2时,则p为奇数,则当e为偶数时(p^(e+1)-1)/(p-1)为奇数。
则需要统计1到n中的平方数个数和2倍的平方数的个数,得到的为1到n中f(n)为奇数的个数。
#include<stdio.h>
int main(){
int T,kase=0;
long long n;
scanf("%d",&T);
while(T--){
scanf("%lld",&n);
long long ans=0;
for(long long i=1;i*i<=n;i++){
ans++;
if(2*i*i<=n) ans++;
}
printf("Case %d: %lld\n",++kase,n-ans);
}
return 0;
}
相关文章推荐
- lightoj 1336 Sigma Function
- LightOJ 1336 Sigma Function
- LightOJ 1336- Sigma Function
- LightOj 1336 Sigma Function(打表找规律)
- 【LightOJ1336】Sigma Function(数论)
- 【LightOJ1336】Sigma Function(数论)
- LightOJ 1336 Sigma Function
- LightOJ1336 Sigma Function
- lightoj 1336 - Sigma Function(算数基本定理)
- LightOJ1336 Sigma Function
- LightOJ - 1336 Sigma Function (n以内约数和为奇数(偶数)的数的个数)
- LightOJ1336 Sigma Function(约数和为奇数的个数)
- C - Sigma Function(LightOJ 1336)
- Lightoj1336——Sigma Function(因子和)
- LightOJ 1336 Sigma Function
- LightOJ1336 Sigma Function(约数和为偶数的个数)
- LightOJ - 1336 Sigma Function (整数拆分推论)
- 【数论 && 公式推导】LightOJ - 1336 Sigma Function
- LightOJ-1336 Sigma Function 唯一分解定理 巧妙使用sqrt()等算数目
- LightOJ 1336 Sigma Function(求1~n的因数和为偶数的个数)