| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
ページの作成:「==エラトステネスのふるい== [VC++.NET]{{category ロジック}} using namespace System; static void screenNumber(array<bool>^ args) { args[0]…」
==エラトステネスのふるい==
[VC++.NET]{{category ロジック}}

using namespace System;

static void screenNumber(array<bool>^ args) {

args[0] = true;
args[1] = true;

for (int i=2; i < args->Length; i++) {
for (int j=2; j < args->Length; j++) {
int num = i * j;
if (num >= args->Length) {
break;
}
args[num] = true;
}
}
}

static void print(array<bool>^ ary) {
int itemCnt = 0;
for (int i=0; i < ary->Length; i++) {
if (!ary[i]) {
Console::Write("{0,6:d} {1}", i, ((++itemCnt % 6 == 0)?"\n":""));
}
}
}

int main(array<System::String ^> ^args)
{

int size = 0l;
array<bool>^ ary = nullptr;
try {
size = Int32::Parse(args[0]);
ary = gcnew array<bool>(size);
} catch (Exception^ e) {
Console::WriteLine("引数が不正です\n{0}", e);
return -1;
}

screenNumber(ary);
print(ary);

return 0;
}

案内メニュー