hdu 1999 可摸数问题

来源:互联网 发布:数据智能 编辑:程序博客网 时间:2024/04/27 16:30

对一个数的所有因数求和的打表方法

for(int i =1; i < maxn; i++)        {            for(int j =i*2 ; j< maxn ; j=j+i)            {                sum[j]+=i;            }        }
#include <iostream>#include <stdio.h>#include <string>#include <cstring>using namespace std;const int maxn = 1000000;int sum[maxn];int a[1010];int main(){        int  t;        memset(a,0,sizeof(a));        memset(sum,0,sizeof(sum));        for(int i =1; i < maxn; i++)        {            for(int j =i*2 ; j< maxn ; j=j+i)            {                sum[j]+=i;            }        }        for(int i = 1; i<= maxn; i++)        {            if(sum[i]<=1000)                a[sum[i]] = 1;        }         scanf("%d",&t);        while(t--)        {        int n;        scanf("%d",&n);        if(a[n])            printf("no\n");        else            printf("yes\n");    }    return 0;}
0 0