hdoj 1999 不可摸数 【数学】

来源:互联网 发布:淘宝开书店需要的证书 编辑:程序博客网 时间:2024/05/21 10:34

题意:。。。

简单来说,就是要找出50万以内的数的真因子之和,再做个标记

代码:

#include <stdio.h>#include <string.h>#define M 500000int a[M];int ok[M];void f(){    int i, j;    for(i = 1; i < M; i ++){        for(j = 1; j*i < M; j ++){            a[i*j]+=i;        }    }    for(i = 1; i < M; i ++){        a[i]-=i;        if(a[i] < 1001){            ok[a[i]] = 1;        }    }} int main(){    f();    int t, n;    scanf("%d", &t);    while(t --){        scanf("%d", &n);        printf("%s\n", ok[n]?"no":"yes");    }} 
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1999

0 0
原创粉丝点击