Time Limit: 3 second

Memory Limit: 2 MB

问题描述

所谓完全数,就是这个数除了它本身的约数之和也等于这个数,比如说6的约数有1、2、3,而1+2+3=6,所以6是个完全数。

编程输入一个整数n,如果n是完全数输出Yes,否则输出No。

Sample Input

6

Sample Output

Yes

Sample Input

100

Sample Output

No

【题目链接】:http://noi.qz5z.com/viewtask.asp?id=rlz01

【题解】



枚举n的因子(1..sqrt(n))就好;

i*i的只能算一次,1的话n/1不能算,因为不能为本身;

/*
n非常大的话有个数论的结论;
即对于一个梅森素数mp = 2^p - 1,必有 一个完全数 2^(p-1) * mp;
比如:p=3
Mp=2^3-1=7也是素数
则有完全数2^(3-1)*(2^3-1)=4*7=28
所以枚举p,如果p是质数,就能搞到一个完全数
*/

【完整代码】

#include <iostream>
#include <cmath>
#include <cstdio> using namespace std; int n; int main()
{
cin >> n;
int maxl = sqrt(double(n));
int sum = 0;
for (int i = 1;i <= maxl;i++)
if (n%i==0)
{
sum+=i;
if ((n/i)!=i && i!=1)
sum+=(n/i);
if (sum > n)
{
puts("No");
return 0;
}
}
if (sum < n)
puts("No");
else
puts("Yes");
return 0;
}

【rlz01】完全数的更多相关文章

  1. 3.python算法之完全数

    代码: #!/usr/bin/env python # encoding: utf-8 """ @author: 侠之大者kamil @file: 3.完全数.py @t ...

  2. java小程序:求完全数

    如果一个数等于它的不包括自身的所有因数之和,那么这个数就叫完全数.例如,6的不包括自身的所有因数为1,2,3,而且6=1+2+3,所以6是完全数. 大约2200多年前,欧几里德提出:如果2n-1是质数 ...

  3. Java版求1000以内的完全数

    /* * 若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数,简称完数. * 例如:6=1+2+3. * 题目:求1000以内的完全数. */ public cl ...

  4. 1000以内完全数(完美数)获取实现---基于python

    """题目: 如果一个数恰好等于它的因子之和,则称该数为"完全数" .各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的 ...

  5. 找出n之内的完全数, 并输出其因子

    定义: 完全数:所有的真因子(即除了自身以外的约数)的和,恰好等于它本身.例如:第一个完全数是6,它有约数1.2.3.6,除去它本身6外,其余3个数相加,1+2+3=6.第二个完全数是28,它有约数1 ...

  6. 完全数java

    完全数:小于本身的所有因子的和(包括1) public class test01 { public static void main(String[] args) { Scanner scanner= ...

  7. PTA——完全数

    PTA 7-45 找完数 网友“云上明月”的程序: #include<stdio.h> int isPerfect(int num); int main() { ; int maxFact ...

  8. Matlab练习——寻找完全数

    clc; clear; wq = []; : sum = ; k = ; : i / sum = sum + j; end end == i wq=[wq i]; end end disp(['2至1 ...

  9. python练习笔记——完全数(1000以内的)

    完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数为“完 ...

随机推荐

  1. Vue中独立组件之间数据交互

    独立组件之间数据交互:通过自定义事件 组件A中的[数据],传递给组件B 1.创建组件A,组件B 2.组件B在实例创建完成时就开始监听事件[等待接收数据]:钩子 3.组件A中触发事件,发送数据 注意:接 ...

  2. 【hdu 3987】Harry Potter and the Forbidden Forest

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=3987 [Description] 给出一张有n个点的图,有的边又向,有的边无向,现在要你破坏一些路 ...

  3. golang 部分理解:关于channel 和 goroutine 例子

    部分理解:关于channel 和 goroutine 例子package main import "strconv" import "fmt" func mai ...

  4. Emmet学习教程

    Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具,Emmet是很成熟的并且非常适用于编写HTML/XML 和 CSS 代码的前端开发人员,但也可以用于编程语言.所 ...

  5. Angularjs: 封装layDate指令

    [摘要]由于业务需要,将bootstrap-datetimepicker改成了layDate. layDate是一个较成熟且便于操作的jQuery日期插件,支持同一个视图内范围选择.封装成一个指令在多 ...

  6. django 简单会议室预约(5)

    再来看看views.py的后半部分,对数据库的增删改查 #获取学院列表 def get_acad_list(): room_list = ConfeRoom.objects.all() #对数据库的操 ...

  7. SSH进阶(2)——用Struts拦截器实现登陆限制

    拦截器从字面意思来看就是限制.限制用户訪问某些网页.在Action提出请求之前用拦截器来做权限设置,让符合的用户跳入对应的界面中.近期做的一个商城项目中就用到了自己定义的拦截器,实现了一个简单的ses ...

  8. 13. 关于IDEA工具在springboot整合mybatis中出现的Invalid bound statement (not found)问题

    在一切准备就绪之后,测试test,却出现了org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) ...

  9. 2.JPA学习总结

    转自:https://shmilyaw-hotmail-com.iteye.com/blog/1969190 前言 最近在做一个项目的时候因为牵涉到要对数据库的操作,在最开始实现的时候采用了直接的JD ...

  10. winform最大化后不遮挡任务栏

    在窗体初始化后添加一句代码 this.MaximizedBounds = Screen.PrimaryScreen.WorkingArea;