zoukankan      html  css  js  c++  java
  • poj 3292 Semiprime Hnumbers

    呃,对自己表示很无奈,明明很清晰地一道题,愣是用了好长时间才做出来,不是没思路,是没整理好思路,没法写代码,好吧,以后要加强!

    题目大意:所有对4取余余一的数都为H-numbers,只有1和它本身两个因子的H-numbers数为H-primes,有两个H_primes的乘机组成的H_numbers称为H-composites,题目是给你一个数,让你求1到H的所有H-composites。

    方法很简单,就是筛选法,但是还有一种情况就是,不是完全有两个H_primes组成的数,这种情况要去掉。具体看代码吧。

    代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define maxx 1000010
    
    int f[maxx+10];
    
    void init()
    {
        int i,j;
        memset(f,0,sizeof(f));
        //f[1]=1;
        for(i=5;i<maxx;i+=4)
        {
            for(j=5;j<maxx && i*j < maxx;j+=4)
            if(!f[i] && !f[j])
                f[i*j] = 1;
            else
                f[i*j] = 2;
        }
        int sum = 0;
        for(i=5; i<maxx ;i++)
        {
            if(f[i] == 1)
                sum++;
            f[i]=sum;
        }        
    }
    
    int main()
    {
        int H,i;
    
        init();
        while (scanf("%d",&H), H)
        {
            printf("%d %d\n",H,f[H]);
        }
        return 0;
    }
  • 相关阅读:
    c#+linux+mono+Redis集群(解决无法连接Redis的问题)
    实验楼----奇妙的音乐
    实验楼----PHP大法
    实验楼----PHP代码审计(sha1、md5)
    实验楼----变异凯撒
    storm安装
    storm问题汇总
    windows下linux子系统安装
    mongoDB学习记录
    excel vba 不可查看
  • 原文地址:https://www.cnblogs.com/misty1/p/2473667.html
Copyright © 2011-2022 走看看