説明タイトルは
整数Nを入力する(2 <= N <= 10000)、 全ての出力が1から、この整数が必要(整数1を含まない)番目のビットは、次に出力素数であり、そうでない場合は-1。
入力し
たデータの入力複数のセットを。
各行は、nを入力します。
出力は、
1から全ての整数の出力(整数1を含まない)番目のビットを1つの素数(素数がスペースで区切らず、素数の後ろに最終的にはスペース)、そうでない場合は出力され-1。
入力サンプル
70
サンプル出力
11314161
コード
#include <cstdio>
int prime[10000],pNum;
void Find_prime(int n){
bool p[10000] = {0};
pNum = 0;
for(int i=2;i<n;i++){
if(p[i] == false){
prime[pNum++] = i;
for(int j=i+i;j<n;j+=i){
p[j] = true;
}
}
}
}
int main(){
int n;
while (scanf("%d",&n) != EOF)
{
Find_prime(n);
int A[pNum],k=0;
for(int i=0;i<pNum;i++){
if(prime[i] % 10 == 1){
A[k++] = prime[i];
}
}
if(k == 0)
printf("-1\n");
else
{
for(int i=0;i<k;i++){
printf("%d",A[i]);
if(i != k-1){
printf(" ");
}
else{
printf("\n");
}
}
}
}
return 0;
}
交流