HDU2608-0 or 1(数论+找规律)
2015-10-04 19:07
218 查看
一,题意:
给定一个n,定义S(n)=T(1)+T(2)+T(3)+...+T(n),T(n)是n的所有因子之和,最后输出S(n)%2的值
(因子就是所有可以整除这个数的数,不包括这个数自身)
二,思路:
凡是"能被完全开方的"或者"被2整除后能完全开方"的数i,它的(T(i)%2)=1;
i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
i*i = 1, 4, 9, 16, 25, 36, 49, 64, 81, 100,
2*i*i = 2, 8, 18, 32, 50, 72, 98, 128, 162, 200;
即 当n等于以上第一排或者第二排的数时, (T(n)%2)=1;
ans = sqrt(n) + sqrt(n/2.0)
三,步骤:
直接输入,输出。
View Code
版权声明:本文为博主原创文章,未经博主允许不得转载。
给定一个n,定义S(n)=T(1)+T(2)+T(3)+...+T(n),T(n)是n的所有因子之和,最后输出S(n)%2的值
(因子就是所有可以整除这个数的数,不包括这个数自身)
二,思路:
凡是"能被完全开方的"或者"被2整除后能完全开方"的数i,它的(T(i)%2)=1;
i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
i*i = 1, 4, 9, 16, 25, 36, 49, 64, 81, 100,
2*i*i = 2, 8, 18, 32, 50, 72, 98, 128, 162, 200;
即 当n等于以上第一排或者第二排的数时, (T(n)%2)=1;
ans = sqrt(n) + sqrt(n/2.0)
三,步骤:
直接输入,输出。
#include<iostream> #include<cmath> using namespace std; int main(){ int n , t ; cin>>t; while(t--){ cin>>n; int ans = (int)sqrt(n)+(int)sqrt(n/2.0); cout<<ans%2<<endl; } return 0 ; }
View Code
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- Flex SDK bin命令解析–mxmlc参数列表
- Flex SDK bin命令解析–mxmlc参数列表
- 国庆随笔
- Jquery给easyui的表单元素赋值,获取值
- Linux 学习笔记 常用命令
- hadoop学习笔记之分布式计算框架
- [PAT]1097. Deduplication on a Linked List (25)
- 50 Pow(x, n)
- 连接打开
- 76. Minimum Window Substring (String, Map)
- hdu 4018 Parsing URL
- JavaBean
- 【AMPPZ2014】【BZOJ4143】The Lawyer
- codeforces 582A. GCD Table 解题报告
- HDU5496求整数序列的子串的并集和,map的简单使用
- LA 2038 Strategic game(最小点覆盖,树形dp,二分匹配)
- Codeforces Round #323 (Div. 2) 583A. Asphalting Roads
- 条款31提及pimpl设计模式
- UIPickerView控件的使用
- ArcGis 中空间数据的插入与更新