码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 10110 - Light, more light

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

标签:io   os   sp   on   c   amp   r   bs   ios   

题目:有一个人负责开关走廊中的灯泡。走廊有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

标签:io   os   sp   on   c   amp   r   bs   ios   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!