zoukankan      html  css  js  c++  java
  • HUD-1999-不可摸数

    参考博客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---------
     1 #include<iostream>
     2 #include<cstring>
     3  
     4 using namespace std;
     5  
     6 //这里MAXN开差不多1005过不了
     7 #define MAXN 500010
     8  
     9 int flag[1005],sum[MAXN];
    10 //打表
    11 void init()
    12 {
    13     memset(flag,0,sizeof(flag));
    14     memset(sum,0,sizeof(sum));
    15  
    16     /*手动模拟一下就行
    17     i=1;
    18     sum[2]=1,sum[3]=1,sum[4]=1...
    19     i=2;
    20     sum[4]=1+2,sum[6]=1+2,sum[8]=1+2...
    21     因为此题因子不包含自身
    22     从第j=i*2算起,递增i,每个j都包含因子i
    23     */
    24  
    25     int i,j;
    26     for(i=1;i<=MAXN/2;++i)
    27         for(j=i*2;j<MAXN;j+=i)
    28         sum[j]+=i;
    29     for(i=1;i<MAXN;++i)
    30         if(sum[i]<1002)
    31         flag[sum[i]]=1;
    32 }
    33  
    34 int main()
    35 {
    36     init();
    37     int T;
    38     while(cin>>T)
    39     {
    40         while(T--)
    41         {
    42             int n;
    43             cin>>n;
    44             if(flag[n])
    45                 cout<<"no"<<endl;
    46             else
    47                 cout<<"yes"<<endl;
    48         }
    49     }
    50     return 0;
    51 }
    现在所有的不幸都是以前不努力造成的。。。
  • 相关阅读:
    数据结构进阶——线段树
    基本数据结构—Hash哈希
    NOIP2013提高组 day2 2019.7.15
    基本算法——归并排序
    基本数据结构—Trie
    NOIP 2011 提高组 Day2 校模拟 7.11
    Noip2014提高组真题Day1,2 校模拟7.7
    NOIP2015 提高组 day1 7.8校模拟
    NOIP2008 提高组 6.9校模拟
    STL-#include<set>
  • 原文地址:https://www.cnblogs.com/shuizhidao/p/8549837.html
Copyright © 2011-2022 走看看