首页 > 其他 > 详细

UVa 10110 - Light, more light

时间:2014-09-13 17:19:05      阅读:143      评论:0      收藏:0      [点我收藏+]

题目:有一个人负责开关走廊中的灯泡。走廊有n个灯泡(编号从1到n),他会来回走上n趟;

            在第 i 趟开始走过去的时候,他会开关灯泡编号可以被 i 整除的灯泡; 

            现在要算出在走完n趟之后,最后一个电灯泡(编号n)是亮着的还是暗着的。

分析:数学。本题就是再求n个因数的个数的奇偶性。

            如果 x|n,那么n/x | n,因此都是成对出现的;

            这里有一个特例,如果n是完全平方数,那么sqrt(n)只会出现一次;

            所以,n是完全平方数,则因数为奇数个;否则,因数为偶数个。

说明:注意int存不下(⊙_⊙)。

#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

int main()
{
	long long n;
	while (cin >> n && n) {
		long long v = (int)sqrt(n+0.0);
		if (v*v == n)
			cout << "yes" << endl;
		else cout << "no" << endl;
	}
	return 0;
}


UVa 10110 - Light, more light

原文:http://blog.csdn.net/mobius_strip/article/details/39252899

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