#include <iostream>
#include <vector>
#include <cmath>
#include <cstdio>
using namespace std;
const int N = 1000;
bool sieve[N];
void eratosthenes() {
// 0 和 1 是質數
sieve[0] = true;
sieve[1] = true;
int sqrt_value = sqrt(N);
// 找下一個未被刪掉的數字
for (int i = 2; i <= sqrt_value; i++)
if (!sieve[i]) {
// k是倍數,j是質數i的倍數。
// 由大到小判斷,當sieve[k]成立時,
// k才能涵蓋所有「大於等於i的質數,其倍數」倍。
for (int k = (N - 1) / i, j = i * k; k >= i; k--, j -= i)
if (!sieve[k])
sieve[j] = true;
// 運用小範圍的sieve[k],避免存取大範圍的sieve[j],
// 大幅減少cache miss。
}
}
int main(int argc, char** argv){
int iN, iC;
eratosthenes();
// 製作質數表
vector<int> prime;
for (int i = 1; i < N; i++) {
if (!sieve[i])
prime.push_back(i);
}
while(cin>>iN>>iC){
//scanf("%d %d",&iN,&iC);
printf("%d %d:",iN,iC);
int doubleC = 2 * iC;
int i,c;
vector<int> output_prime;
output_prime.clear();
//get the primes < N
output_prime.push_back(1);
for(i=0;i<prime.size();i++){
if(prime[i]<=iN) output_prime.push_back(prime[i]);
}
int index = output_prime.size();
if (index % 2) {
c = (iC * 2) - 1;
i = (long) (ceil(index/2) - floor(c/2));
if (i <= 0) {
for (i = 0; i < index; i++)
printf(" %d", output_prime [i]);
}
else {
while (i <= (ceil(index/2) + floor(c/2)))
printf(" %d", output_prime [i++]);
}
}
else {
c = iC * 2;
i = ((index/2)+1) - (c/2) - 1;
if (i <= 0) {
for (i = 0; i < index; i++)
printf(" %d", output_prime [i]);
}
else {
while (i < ((index/2) + (c/2)))
printf(" %d", output_prime [i++]);
}
}
printf ("\n\n");
}
}
SyntaxHighlighter
2013-10-01
UVa 406 Solution
登録:
コメントの投稿 (Atom)
人気の投稿
-
指令/英文 翻譯1 翻譯2 2D Solid 二維實體 2D 實面 2D Wireframe 二維線框 3D Array 三維陣列 3D 陣列 3D Dynamic View 三維動態觀察 3D 動態檢視 3d objects 三維物體 3D 物件 3D Orbit...
-
ノート程度: 線の太さを画面に反映させる Win: ツール>オプション でオプションウィンドを開き 作図スタイル>アクティブな作図スタイル>線のフォント で [ グラフィック領域で太さを表示]にチェックを入れる。 Mac: System Menu → 設定 /...
-
☆日本一 子煩悩な県 問題: 1.休日はたいてい子どもと遊ぶ 2.配偶者より子どもが大事である 3.外食するときは、まず子どもに何を食べたいか聞く 4.携帯の待ち受けは子どもの写真だ 5.子どもの寝顔を見て感動のあまり泣いたことがある ランキング 1.熊本県 2.北海道 3.山...
-
日本で結婚するときに、台湾の戸籍謄本の訳本が要る。 検索したら、いろいろ有用な先人たちの情報があります。 I♥TAIWAN - 日本小雪さんのブログ、最初ここからスタートして多分いちばん間違いなし。 在日台灣太太連絡簿 - 最低限の必要単語が載っている。 梅と桜 ...
-
這東西搞了兩個多禮拜,終於讓我找到合理的計算方式。 真圓度的計算方法,若使用半徑法,目前有 4種方式(參考Wikipedia(en)資料) 去取假想圓中心。 1. 最小區域圓法 Minimum Zone circle (MZC) 這是ISO及JIS B0621有規定的正式...
-
AutoCADではボタンで1クリック切り替えですけどね DraftSightではややめんどくさい 印刷シート(シートタブ)内で、全空間(モデルタブ)の特定の場所だけ出力させたい時に、ペーパー空間(シート ワークスペース)よりモデル空間(モデル ワークスペース)へ切り替える必...
-
第一關,...沒啥好寫的簡單 右鍵找出網頁原始碼之後就會看到密碼了 h4x0r ...NEXT
-
x64環境のSDKを使ってコンパイルするときに、GWL_WNDPROCなどシステムの定数が使えないことになります。 それは、SDKでは、x64環境であれば(#ifdef _win64)、それらの変数の定義をキャンセルした(undef)のです。 解決法として、GWL_WNDPROC...
-
大多數人使用iReport生成都會使用SQL來抓取資料庫檔案,但是iReport畢竟只是個設計表單用的程式,資料還是要靠Java餵給他。 一般的使用法,就像我以前做的 1. 在iReport中寫死SQL查詢句( SELECT xxx FROM yyy WHERE zzz )...
-
Access 2010の環境で開発する際、新しいファイル(ACCDB)は古いAccessでは使えないため、旧形式のMDBファイルに変換する必要性がある。 但し、変換されたファイルに、VBAコードはうまく変換できない/VBAコードが削除されることが多々ある。 故に、次のステッ...
0 件のコメント:
コメントを投稿