POJ 2853 (数学)

来源:互联网 发布:qq飞车幻想战神数据 编辑:程序博客网 时间:2024/05/17 01:22

http://poj.org/problem?id=2853

一道数学题,就是有N个询问,问每个数能分成多少公差为1的等差数列的和,并且长度要大于1。这题的答案就是这个数除1以外的奇约数的个数,可以用O(sqrt(n))的时间来求解,是可以过的,但是O(n)就过不了。

0ms AC代码:

/*Problem: Sequence Sum PossibilitiesSource: POJ 2853Author: fts2001*/#include <iostream>using namespace std;int t,id,n,cnt;int main(){ios::sync_with_stdio(false);cin>>t;for(int i=0;i<t;i++){cin>>id>>n;cnt=0;for(int j=1;j*j<=n;j++){if(n%j==0){int k=n/j;if(j&1)cnt++;if(k&1)cnt++;if(j==k)cnt--;}}cout<<id<<' '<<--cnt<<endl;}return 0;


0 0
原创粉丝点击