2019年2月20日水曜日

開発環境

Modern C++チャレンジ ―C++17プログラミング力を鍛える100問 (Marius Bancila(著)、島 敏博(監修)、黒川 利明(翻訳)、オライリージャパン)の1章(数学の問題)、問題6(過剰数)の解答を求めてみる。

コード

#include <iostream>

int main()
{
  size_t upper = 105;
  size_t count = 1;
  
  std::cout << "上限: " << upper << std::endl;
  
  for (size_t i = 1; i <= upper; i++)
  {
    size_t t = 0;
    for (size_t j =  1; j <= i / 2; j++) {
      if (i % j == 0) {
        t += j;
      }
    }
    if (t > i) {
      std::cout << count << "番目: " << i << std::endl;
      count++;
    }
  }
}

入出力結果(cmd(コマンドプロンプト)、Terminal)

Active code page: 65001

C:\Users\...>cl sample6.cpp && sample6.exe
Microsoft(R) C/C++ Optimizing Compiler Version 19.16.27027.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

sample6.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xlocale(319): warning C4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効にはなりません。/EHsc を指定してください。
Microsoft (R) Incremental Linker Version 14.16.27027.1
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:sample6.exe
sample6.obj
上限: 105
1番目: 12
2番目: 18
3番目: 20
4番目: 24
5番目: 30
6番目: 36
7番目: 40
8番目: 42
9番目: 48
10番目: 54
11番目: 56
12番目: 60
13番目: 66
14番目: 70
15番目: 72
16番目: 78
17番目: 80
18番目: 84
19番目: 88
20番目: 90
21番目: 96
22番目: 100
23番目: 102
24番目: 104

C:\Users\...>

0 コメント:

コメントを投稿