OEISでsequence of interestが見つかりました。私が取り組んでいるプログラミング競争解決のためにC++で同じシーケンスを生成したいと思います。PARIプログラムをC++に変換
しかし、私はシーケンスページで与えられたプログラムの仕組みを理解しているロードブロッキングを打ちました。ここで
は、ページ内に与えられたプログラムである -
(PARI) test(n)= {m=n; forprime(p=2, 5, while(m%p==0, m=m/p));
return(m==1)} for(n=1, 500, if(test(n), print1(n", ")))
(PARI) a(n)=local(m); if(n<1, 0, n=a(n-1);
until(if(m=n, forprime(p=2, 5, while(m%p==0, m/=p)); m==1), n++); n)
(PARI) list(lim)={
lim\=1;
my(v=List(), s, t);
for(i=0, log(lim+.5)\log(5),
t=5^i;
for(j=0, log(lim\t+.5)\log(3),
s=t*3^j;
while(s <= lim,
listput(v, s);
s <<= 1;
)
)
);
vecsort(Vec(v))
};
私はPARIが何であるかを見つけましたが、私はC++にこのプログラムを変換することができません。 C++で同じシーケンスを生成するのに役立つ提案があれば、大歓迎です。
次のコードスニペットを使用してC++でシーケンスを生成しようとしました。しかし、私は、オンラインIDEでいくつかのテストに失敗すると、いくつかの数字が間違っていると思います。
for(int i = 0; i < 16; i++)
{
for(int j = 0; j < 15; j++)
{
for(int k = 0; k < 12; k++)
{
std::cout<<pow(2,i)*pow(3,j)*pow(5,k)<<std::endl;
}
}
}
私は16,15,12を制限として選択しました。そうしないと、結果の値が長い可変型をオーバーフローするためです。
何を試しましたか? –
私の編集をご覧ください。編集を完了する前に下の投票を受けなければなりませんでした。:( –
あなたのプログラムに長いタイプはありません –