首页 > 其他 > 详细

NYOJ216 A problem is easy

时间:2014-02-15 16:36:20      阅读:415      评论:0      收藏:0      [点我收藏+]

原题链接

原式可以化成(i + 1) * (j + 1) = N + 1; 因为i, j > 0, 所以问题转换成了求N + 1的大于等于2的所有因子个数(不包括本身)。比如N = 5,则因子为2, 3,但是只属于一种情况,因为2*3 = 3*2.。要用sqrt,否则易超时。

附ac代码:

#include <stdio.h>
#include <math.h>

int main(){
	int t, count, m;
	long long n, i;
	scanf("%d", &t);
	while(t-- && scanf("%lld", &n)){
		count = 0;
		++n;
		m = (int)sqrt(n);
		for(i = 2; i <= m; ++i)
			if(n % i == 0) ++count;
		printf("%d\n", count);
	}
	return 0;
}


NYOJ216 A problem is easy

原文:http://blog.csdn.net/chang_mu/article/details/19234765

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!