The Fool
Problem Description
The Fool is numbered 0 – the number of unlimited potential –and therefore does not have a specific place in the sequence of the Tarot cards. The Fool can be placed either at the beginning of the Major Arcana or at the end. The Major Arcana is often considered as the Fool’s journey through life and as such, he is
ever present and therefore needs no number.
Given n ∈ N+ , print the parity of∑i=1N [ni ],
where [x] = max a (a∈Z,a≤x)
Input
The first line of the input contains one integer T ≤ 100, denoting the number of testcases. Then T testcases follow.
In each of the T testcases, there is a positive number n ≤ 109 .
Output
For each testcase, print a single line starting with “Case i : ”(i indicates the case number) and then “even” or “odd”, separated with a single space.
Sample Input
3 1 10000 100000000
Sample Output
Case 1: odd Case 2: even Case 3: even
Source
整除分块模板:
for(int i=1,last;i<=n;i=last+1) { last=n/(n/i); //该区间的最后一个数 ans+=(last-i+1)*(n/i); }
解法1:n=10时
10 10 10 10 10 10 10 10 10 10
1 2 3 4 5 6 7 8 9 10
10 5 3 2 2 1 1 1 1 1
解法2:找规律: 每一串连续odd/even 的第一个数为平方数
这对任一个数开根号再取整奇偶性就出来了
50
Case 1: odd
Case 2: odd
Case 3: odd
Case 4: odd
Case 5: odd
Case 6: odd
Case 7: odd
Case 8: odd
Case 9: odd
Case 10: odd
Case 11: odd
Case 12: odd
Case 13: odd
Case 14: odd
Case 15: odd
Case 16: odd
Case 17: odd
Case 18: odd
Case 19: odd
Case 20: odd
Case 21: odd
Case 22: odd
Case 23: odd
Case 24: odd
Case 25: odd
Case 26: odd
Case 27: odd
Case 28: odd
Case 29: odd
Case 30: odd
Case 31: odd
Case 32: odd
Case 33: odd
Case 34: odd
Case 35: odd
Case 36: odd
Case 37: odd
Case 38: odd
Case 39: odd
Case 40: odd
Case 41: odd
Case 42: odd
Case 43: odd
Case 44: odd
Case 45: odd
Case 46: odd
Case 47: odd
Case 48: odd
Case 49: odd
Case 50: odd
#include<bits/stdc++.h> using namespace std; int main() { int t; // while(t--) scanf("%d",&t); for(int j=1;j<=t;j++) { int n; scanf("%d",&n); long long sum=0; for(int i=1,last;i<=n;i=last+1){ last=n/(n/i); // cout<<last<<endl; //该区间的最后一个数 sum+=(last-i+1)*(n/i); } if(sum%2==0) printf("Case %d: even\n",j); else printf("Case %d: odd\n",j); } }