首页 > 其他 > 详细

hdoj 1999 不可摸数 【数学】

时间:2014-08-21 11:37:24      阅读:253      评论:0      收藏:0      [点我收藏+]

题意:。。。

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

代码:

#include <stdio.h>
#include <string.h>
#define M 500000
int 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

hdoj 1999 不可摸数 【数学】,布布扣,bubuko.com

hdoj 1999 不可摸数 【数学】

原文:http://blog.csdn.net/shengweisong/article/details/38711665

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!