参考博客https://www.cnblogs.com/dongsheng/archive/2012/08/18/2645594.html

Problem Description
s(n)是正整数n的真因子之和,即小于n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何
数m,s(m)都不等于n,则称n为不可摸数.
 



Input
包含多组数据,首先输入T,表示有T组数据.每组数据1行给出n(2<=n<=1000)是整数。
 



Output
如果n是不可摸数,输出yes,否则输出no
 



Sample Input
3
2
5
8
 



Sample Output
yes
yes
no
-------AC---------

#include<iostream>
#include<cstring>

using namespace std;

//这里MAXN开差不多1005过不了
#define MAXN 500010

int flag[1005],sum[MAXN];
//打表
void init()
{
    memset(flag,0,sizeof(flag));
    memset(sum,0,sizeof(sum));

/*手动模拟一下就行
    i=1;
    sum[2]=1,sum[3]=1,sum[4]=1...
    i=2;
    sum[4]=1+2,sum[6]=1+2,sum[8]=1+2...
    因为此题因子不包含自身
    从第j=i*2算起,递增i,每个j都包含因子i
    */

int i,j;
    for(i=1;i<=MAXN/2;++i)
        for(j=i*2;j<MAXN;j+=i)
        sum[j]+=i;
    for(i=1;i<MAXN;++i)
        if(sum[i]<1002)
        flag[sum[i]]=1;
}

int main()
{
    init();
    int T;
    while(cin>>T)
    {
        while(T--)
        {
            int n;
            cin>>n;
            if(flag[n])
                cout<<"no"<<endl;
            else
                cout<<"yes"<<endl;
        }
    }
    return 0;
}

HUD-1999-不可摸数的更多相关文章

  1. hdu 1999 不可摸数 水题。

    不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  2. HDU 1999 不可摸数

    /* 中文题意: 中文翻译: 题目大意:见红字(例如以下) 解题思路:打表,将每一个数的合数之和存在一个数组之中 难点具体解释:用两个for循环写的,第二个for循环主要是解释两个数相乘不超过这个最大 ...

  3. hdu 1999 不可摸数 筛选素数 两次打表

    不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. HDU 1999 不可摸数 (模拟)

    题目链接 Problem Description s(n)是正整数n的真因子之和,即小于n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何数m,s(m)都不等于n,则称n为不可摸数 ...

  5. HDU 1999 不可摸数【类似筛法求真因子和】

    不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  6. HDU - 1999 不可摸数,快速求因子和

    题意:定义s[m]为m内的因子的和,给定一个n,判断是否有s[m]==n,若没有,则是不可摸数. 思路:首先要打表求出s[m]的值,标记这些出现过的值. 打表求因子和: for(int i=1;i&l ...

  7. 不可摸数 【杭电-HDOJ-1999】 附题

    /* hdu 1999 不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. HDOJ-1999 不可摸数

    不可摸数 转自:http://www.cnblogs.com/dongsheng/archive/2012/08/18/2645594.html Time Limit: 2000/1000 MS (J ...

  9. noip 1999 回文数

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...

随机推荐

  1. MySQL中的内置系统函数

    一.字符串函数  1. CONCAT(S1,S2....SN): 把传入的参数连接成一个字符串  2. INSERT(str, x, y, insert): 将字符串 X位置开始,y个字符串长度替换为 ...

  2. CentOS时间的查看与修改

    [http://www.centoscn.com/CentOS/help/2014/0805/3430.html] 1.查看.修改Linux时区与时间 一.linux时区的查看与修改 1,查看当前时区 ...

  3. 插入排序Insertion Sort

    插入排序:将一个数据插入到一个已经排好序的有序数据序列中,从而得到一个新的.个数+1的有序数列:插入排序适用于少量数据排序,时间复杂度为O(n^2). 实现思路:1.对于一个无序数组,选取第一个元素, ...

  4. tomcat在centos下的操作

    一 .Tomcat启动与停止 进入Tomcat中bin所在目录 cd /usr/tomcat/bin 启动: ./startup.sh 停止: ./shutdown.sh 平常可以用这个命令来查看to ...

  5. php常见面试题

    1.如何取得来访者的IP地址? $_SERVER['RRMOTE_ADDR']; $_SERVER['CLIENT_IP']; $_SERVER['HTTP_X_FORWARED_FOR']; 2.$ ...

  6. Java集合中的AbstractMap抽象类

    jdk1.8.0_144 AbstractMap抽象类实现了一些简单且通用的方法,本身并不难.但在这个方法中有两个方法非常值得关注,keySet和values方法源码的实现可以说是教科书式的典范. 抽 ...

  7. Centos6增加新用户并赋予权限

    第一步:创建用户并设置密码 useradd testuser // 增加用户名为'testuser'的用户 passwd testpasswd //设定密码为'testpasswd' 第二步:用户授权 ...

  8. Springdata mongodb 版本兼容 引起 Error [The 'cursor' option is required, except for aggregate with the explain argument

    在Spring data mongodb 中使用聚合抛出异常 mongodb版本 为 3.6 org.springframework.dao.InvalidDataAccessApiUsageExce ...

  9. mysql分区之range分区

    随着互联网的发展,各方面的数据越来越多,从最近两年大数据越来越强的呼声中就可见一斑. 我们所做的项目虽算不上什么大项目,但是由于业务量的问题,数据也是相当的多. 数据一多,就很容易出现性能问题,而为了 ...

  10. ActiveMQ安装及启动

    最近项目组遇到MQ的问题(项目组用的IBM MQ),突然想回来看看MQ.本来就不是太熟练,闲来无事写写看看. 不多说,首先是安转ActiveMQ,官方网址:http://activemq.apache ...