博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【洛谷】P1876 开灯
阅读量:5161 次
发布时间:2019-06-13

本文共 705 字,大约阅读时间需要 2 分钟。

P1876 开灯

题目背景

该题的题目是不是感到很眼熟呢?

事实上,如果你懂的方法,该题的代码简直不能再短。

但是如果你不懂得呢?那。。。(自己去想)

题目描述

首先所有的灯都是关的(注意是关!),编号为1的人走过来,把是一的倍数的灯全部打开,编号为二的的把是二的倍数的灯全部关上,编号为3的人又把是三的倍数的灯开的关上,关的开起来……直到第N个人为止。

给定N,求N轮之后,还有哪几盏是开着的。

输入输出格式

输入格式:

一个数N

输出格式:

若干数,表示开着的电灯编号

输入输出样例

输入样例#1:
5
输出样例#1:
1 4

说明

1<=N<=2^40

数学题!

#include
#include
long long n;int main(){ scanf("%lld",&n); long long a=sqrt((double)n); for(int i=1;i<=a;i++){ printf("%lld ",i*i); }}

从现在开始再也不水水题了

这将是水库里最后一道水题

想到之后很显然,操作k次灯是关着的,操作k+1次灯是开着的。被操作的次数取决于灯编号的因数个数,只有满足存在p使n=p^2,编号n才有奇数个公因数。

可以用反证法证明。

假设一个正整数n,使n满足n=p*p,p∈Z且p有偶数个因数。则另有一正整数q满足n=q*q,则n的算术平方根为p和q,而正整数的算术平方根只有一个,二者矛盾。

转载于:https://www.cnblogs.com/huibixiaoxing/p/6537754.html

你可能感兴趣的文章
正则表达式匹配号码
查看>>
mysql 主机免密登录设置
查看>>
YJX_Driver_030_实战EXE和SYS通信(其它模式)
查看>>
mvc,mvp,mvvm
查看>>
Ubuntu18.04上安装java
查看>>
jsp tld的function 自定义方法扩展
查看>>
HDU 4819 Mosaic 【二维线段树】
查看>>
extjs xtype(转)
查看>>
duoxueke
查看>>
iOS开发之iOS6.0\iOS7.0\iOS8.0的UIAlertView message 文字对齐设置
查看>>
三种实现Android主界面Tab的方式
查看>>
【ARM】2410裸机系列-流水灯
查看>>
Comparator 与 Comparable 的区别
查看>>
Linux学习笔记(一)——入门
查看>>
Jmeter中中文乱码
查看>>
pandas之数据处理操作
查看>>
jQuery拼接HTML标签元素
查看>>
【BZOJ】3926: [Zjoi2015]诸神眷顾的幻想乡
查看>>
【BZOJ】1052: [HAOI2007]覆盖问题
查看>>
Objective-C基础10 :代码块
查看>>