川のブログ

川の適当気ままなブログです。 

AOJ 0162 Hamming Numbers

こんにちは川です。

今回の問題は、ハミング数が1 * 2^n * 3^m * 5^x (0<=n,m,x)らしいので

ハミング数を割り出し、for分でまわして適当にやりました。

 

ソースコード

 

#include<bits/stdc++.h>
#define MAX 1000001
using namespace std;
int main()
{
    bool hamming[MAX]={};
    for(int i=1;i<MAX;i*=2){
        for(int j=i;j<MAX;j*=3){
            for(int k=j;k<MAX;k*=5)hamming[k]=1;
        }
    }
    int m;
    while(cin>>m,m){
        int n,co=0;
        cin>>n;
        for(int i=m;i<=n;i++)if(hamming[i])co++;
        cout<<co<<endl;
    }
}