HDU2608-0 or 1(数论+找规律)

一,题意:
  给定一个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)
三,步骤:
  直接输入,输出。

 1 #include<iostream>
 2 #include<cmath>
 3 using namespace std;
 4 int main(){
 5     int n , t ;
 6     cin>>t;
 7     while(t--){
 8         cin>>n;
 9         int ans = (int)sqrt(n)+(int)sqrt(n/2.0);
10         cout<<ans%2<<endl;
11     }
12     return 0 ;
13 }

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-10 05:13:15

HDU2608-0 or 1(数论+找规律)的相关文章

Codeforces 837E Vasya&#39;s Function 数论 找规律

题意:定义F(a,0) = 0,F(a,b) = 1 + F(a,b - GCD(a,b).给定 x 和 y (<=1e12)求F(x,y). 题解:a=A*GCD(a,b) b=B*GCD(a,b),那么b-GCD(a,b) = (B-1)*GCD(a,b),如果此时A和B-1依然互质,那么GCD不变下一次还是要执行b-GCD(a,b).那么GCD什么时候才会变化呢?就是说找到一个最小的S,使得(B-S)%T=0其中T是a的任意一个因子.变形得到:B%T=S于是我们知道S=min(B%T).也

POJ 2800 Joseph’s Problem 数论找规律

Description 求 Input 两个整数n和k(1<=n,k<=1e9) Output 输出 Sample Input 5 3 Sample Output 7 暴力超时,这样就打下表找下余数的规律.输入100,27,一下子就可以看出来,倒着的看,是一段一段的等差序列. 例如100 25 除数 1    2    3    4    5    6    7    8    9     10     11    12   13 14  15  ......25   26........ 商

BC - Zball in Tina Town (质数 + 找规律)

Zball in Tina Town Accepts: 541 Submissions: 2463 Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) 问题描述 Tina Town 是一个善良友好的地方,这里的每一个人都互相关心. Tina有一个球,它的名字叫zball.zball很神奇,它会每天变大.在第一天的时候,它会变大11倍.在第二天的时候,它会变大22倍.在第nn天的时候,

SGU 169 Numbers (找规律)

题意:中文题,直接忽略... 析:先说说我的思路,我一看这个题第一感觉就是要找规律,要是挨着算,猴年马月都跑不完,更何况时间限制是0.25s,怎么找规律呢,我算了一下前10位,分别是8,1,1,3,1,1,4,1,1,3,然后我就觉得应该是113114循环再加一第一位是8,果然AC了. 然后结束后我看看了题解好像是算出来的,因为数很大又不是高精度,肯定是要找规律了,假设n有k位,分别从右往左a1,a2...ak,首先a1(也就是个位)肯定不是9(因为如果是9,那么n+1就有0了),所以呢n+1各

hdu4925Apple Tree(找规律)

题目:hdu4925Apple Tree(找规律) 题目大意:给出N* M 的矩阵,然后每个格子要不种苹果,要不施肥:在(X,Y)施肥后,它上下左右的苹果树的产量会翻倍.种了苹果数,产量为1.求这样的N * M个矩阵能得到的最大的苹果数. 解题思路: 对于2 * 2的矩阵: X代表施肥 , 有数字代表种树  X 2  这样是最好的.各自上的数字代表这个格子被施肥几次.那么2 * 2的最多的苹果数 2 ^2 + 2^2 = 8; 2 X 3 * 3 : X  3 X 3  X   3 X  3  

求N!末尾的0的个数--找规律+递归

0\'s Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 计算整数n!(n的阶乘)末尾有多少个0. 输入 第一行输入一个数T代表测试数据个数(T<=20).接下来T行每行1个数代表n(0<=n< 2^31). 输出 对于每个测试数据输n!末尾有多少个0,每行输出一个结果. 示例输入 3 1 5 10 示例输出 0 1 2 提示 中国海洋大学第三届"朗讯杯"编程比赛高级组试题 声明(摘抄至某前辈)--

“玲珑杯”ACM 热身赛 # 0.5 A -- Alarm 【素数打表】【找规律】

A -- Alarm Time Limit:1s Memory Limit:128MByte [思路]找规律:the k-th = 第k个素数^2 - k; 3=2^2-1 7=3^2-2 22=5^2-3 45=7^2-4...... AC代码: #include<cstdio> #define H 1000005 long long s[H]={1,1}; long long x[H]; void sushu() { long long i, j; for(i = 2; i <= H

hdu 1021 斐波那契2,找规律

背景:暴力必定超数据结构范围,因为斐波那契类型数列,成指数形式爆炸增长.故写了数据发现取余30不影响结果. 学习:1.数论类题可以写出几组数据找规律,猜结论. 我的代码: #include<stdio.h> int str[1000009] = { 7, 11 }; int main() { int n; for (int i = 2; i <=1000000; i++){ str[i] = (str[i - 1] + str[i - 2])% 30; } while (scanf(&q

1002. [FJOI2007]轮状病毒【找规律+递推】

Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下图所示 N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不 同的3轮状病毒,如下图所示 现给定n(N<=100),编程计算有多少个不同的n轮状病毒 Input 第一行有1个正整数n Output 计算出的不同的n轮状病毒数输出 Sample Inpu