HDU 2608解题报告
来源:互联网 发布:怎么修改手机游戏数据 编辑:程序博客网 时间:2024/05/17 08:11
0 or 1
Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2804 Accepted Submission(s): 730
Problem Description
Solving problem is a interesting thing. Yifenfei like to slove different problem,because he think it is a way let him more intelligent. But as we know,yifenfei is weak in math. When he come up against a difficult math problem, he always try to get a hand. Now the problem is coming! Let we
define T(n) as the sum of all numbers which are positive integers can divied n. and S(n) = T(1) + T(2) + T(3)…..+T(n).
define T(n) as the sum of all numbers which are positive integers can divied n. and S(n) = T(1) + T(2) + T(3)…..+T(n).
Input
The first line of the input contains an integer T which means the number of test cases. Then T lines follow, each line consists of only one positive integers n. You may assume the integer will not exceed 2^31.
Output
For each test case, you should output one lines of one integer S(n) %2. So you may see the answer is always 0 or 1 .
Sample Input
3123
Sample Output
100HintHint S(3) = T(1) + T(2) +T(3) = 1 + (1+2) + (1+3) = 8 S(3) % 2 = 0
Author
yifenfei
Source
奋斗的年代
Recommend
yifenfei | We have carefully selected several similar problems for you: 2609 2617 2612 2610 2606
这道题属于简单的数论题,但是也有一定的技巧性。题目中的T(n)相当于是n的所有约数之和,S(n)是T(1)~T(n)之和。根据数的唯一分解定理可以得到,n=(2^x1)*(p2^x2)*……*(pk^xk)将n分解质因数。则T(n)=(1+2+2^2+……+2^x1)*(1+p2+……+p2^x2)*……*(1+pk+……+pk^xk)。含有2的多项式之和必然为奇数。而对于后边的多项式,由于pk是n的质因数,且必为奇数。要保证k个多项式之积都为奇数,那么只有所有的多项式均为奇数才行。则x2,x3……xk必须都为偶数。则T(n)就可以写成(2^a)*(x^2)。所以当T(n)=2*(x^2)或者T(n)=x^2。要求S(n)的大小就要求出在1~n中有多少个x^2,有多少个2*x^2。个数分别为(int)sqrt(n)和(int)sqrt(n/2)。千万要注意强制转换。
本题要深刻理解整数的唯一分解定理这些基本的数论知识才能比较容易的推出结论。打表也可以,但不一定每个人都能看出这个规律。
参考代码:
#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<algorithm>#include<string>#include<vector>#include<map>#include<set>#include<stack>#include<queue>#include<ctime>#include<cstdlib>#include<iomanip>#include<utility>#define pb push_back#define mp make_pair#define CLR(x) memset(x,0,sizeof(x))#define _CLR(x) memset(x,-1,sizeof(x))#define REP(i,n) for(int i=0;i<n;i++)#define Debug(x) cout<<#x<<"="<<x<<" "<<endl#define REP(i,l,r) for(int i=l;i<=r;i++)#define rep(i,l,r) for(int i=l;i<r;i++)#define RREP(i,l,r) for(int i=l;i>=r;i--)#define rrep(i,l,r) for(int i=1;i>r;i--)#define read(x) scanf("%d",&x)#define put(x) printf("%d\n",x)#define ll long long#define lson l,m,rt<<1#define rson m+1,r,rt<<11using namespace std;int main(){ int t,n; read(t); while(t--) { read(n); int s=(int)sqrt(n*1.0)+(int)sqrt(n/2.0); printf("%d\n",(s&1)); }}
0 0
- HDU 2608解题报告
- HDU 3342 解题报告
- HDU 3336 解题报告
- HDU 3335 解题报告
- hdu 2516解题报告
- hdu 1004解题报告
- hdu 2139解题报告
- hdu 1019解题报告
- hdu 1064 解题报告
- HDU 1113 解题报告
- hdu 1068 解题报告
- HDU:2050解题报告
- hdu 4001解题报告
- hdu 1005解题报告
- HDU解题报告--1003
- HDU解题报告--1004
- HDU解题报告--1005
- HDU 1005 解题报告
- Unity3D 多人协作开发svn 环境搭建
- 【黑马程序员】oc中的NSManager文件操作
- HTML+CSS+JS实现选项卡
- 修改php.ini配置的几种方法
- AES算法256位密钥
- HDU 2608解题报告
- 【后缀自动机】 SPOJ SUBLEX
- 利用Spring-Data-Redis和Jedis操作Redis缓存
- 非UI线程更新UI界面的各种方法小结
- URAL 1880 Psych Up's Eigenvalues (技巧)
- spark 倒排索引
- 3年了
- HDU 2094 产生冠军
- LoadRunner教程01:性能测试常见用语