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

MyMemoWiki

「エラトステネスのふるい」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==エラトステネスのふるい== [VC++.NET]{{category ロジック}} using namespace System; static void screenNumber(array<bool>^ args) { args[0]…」)
 
1行目: 1行目:
 
==エラトステネスのふるい==
 
==エラトステネスのふるい==
[VC++.NET]{{category ロジック}}
+
[[VC++.NET]]{{category ロジック}}
  
 
  using namespace System;
 
  using namespace System;
 
   
 
   
  static void screenNumber(array<bool>^ args) {
+
  static void screenNumber(array&lt;bool&gt;^ args) {
 
   
 
   
 
     args[0] = true;
 
     args[0] = true;
 
     args[1] = true;
 
     args[1] = true;
 
   
 
   
     for (int i=2; i < args->Length; i++) {
+
     for (int i=2; i &lt; args-&gt;Length; i++) {
         for (int j=2; j < args->Length; j++) {
+
         for (int j=2; j &lt; args-&gt;Length; j++) {
 
             int num = i * j;
 
             int num = i * j;
             if (num >= args->Length) {
+
             if (num &gt;= args-&gt;Length) {
 
                 break;
 
                 break;
 
             }
 
             }
20行目: 20行目:
 
  }
 
  }
 
   
 
   
  static void print(array<bool>^ ary) {
+
  static void print(array&lt;bool&gt;^ ary) {
 
     int itemCnt = 0;
 
     int itemCnt = 0;
     for (int i=0; i < ary->Length; i++) {
+
     for (int i=0; i &lt; ary-&gt;Length; i++) {
 
         if (!ary[i]) {
 
         if (!ary[i]) {
 
             Console::Write("{0,6:d} {1}", i, ((++itemCnt % 6 == 0)?"\n":""));
 
             Console::Write("{0,6:d} {1}", i, ((++itemCnt % 6 == 0)?"\n":""));
29行目: 29行目:
 
  }
 
  }
 
   
 
   
  int main(array<System::String ^> ^args)
+
  int main(array&lt;System::String ^&gt; ^args)
 
  {
 
  {
 
      
 
      
 
     int size = 0l;
 
     int size = 0l;
     array<bool>^ ary = nullptr;
+
     array&lt;bool&gt;^ ary = nullptr;
 
     try {
 
     try {
 
         size = Int32::Parse(args[0]);
 
         size = Int32::Parse(args[0]);
         ary = gcnew array<bool>(size);
+
         ary = gcnew array&lt;bool&gt;(size);
 
     } catch (Exception^ e) {
 
     } catch (Exception^ e) {
 
         Console::WriteLine("引数が不正です\n{0}", e);
 
         Console::WriteLine("引数が不正です\n{0}", e);

2020年2月15日 (土) 07:59時点における版

エラトステネスのふるい

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;
}