ある数が正の約数として持つ整数の数

の時、(ただし、q,pなどはすべて素数) の正の約数は となる。 例えば80の約数を見るときに として、80の約数は10個あるのだなと分かる。 素数の組み合わせだけ倍数が存在するため、 までの となるため。

maketitleをちょっと軽めに

こちらの記事でレポート作成環境を Markdown で整えようとしたのですが、結局 LaTeX 直書きになってしまいました。 LaTeX は初めて触ったのですが、高校1年生の軽めのレポートにはいささか重いタイトルを出力してきます。 大した内容でないのにこれはちょっ…

C++ 区分化

C++

範囲を引数にとる関数はしばしばその範囲が「区分化」されていることを要求します。 区分化されているとは、おおざっぱに言えばある条件により分けられた2つの範囲が昇順に並べられている事を指します。 昇順にソートされた数列 [ 0, 2, 4, 6, 8 ] は、任意…

Vaffleとquickhlのキーマップが競合していたので直す

dein.vimを導入 と quickhl の記事で vim に Vaffle と quickhl というプラグインを導入しました。 Vaffle はシンプルなファイラーで quickhl は単語単位の複数ハイライトを可能にするプラグインです。 どちらもとても便利なのですが、 Vaffle はファイル選…

C/C++ 厳密な別名付け

C C++

この記事を読んでメモ。 明らかにおかしな参照やポインタのキャストによるアクセスはコンパイラの最適化によって無視される可能性があるよって話。 uint32_t f(uint32_t a) { uint16_t *p = &a; // uint16_t は uint32_t の別名とはなり得ない // p は a を…

Makefileのdefineはendefまでの値を持った変数を定義する

以下のコード2つは同じ。 s = Hello World! main: $(info $(s)) define s Hello World! endef main: $(info $(s))

構造体/クラスの多重定義エラーは1つの翻訳単位内で起こる

C C++

C/C++ の入門サイトや入門本でインクルードガードの説明に「構造体/クラスの多重定義を避けるため」とあるが、 main.c と sub.c でインクルードされたらどうしようもなくね?という疑問が残るだろう。 多重定義エラーはコンパイル時に起こるものなので、例え…

g++でfilesystem使おうとしたらそんなものはないと言われた

C++

以下のコードのコンパイルが通らなかった(プリプロセスでつまずいた)話。 #include <iostream> #include <filesystem> using namespace std; using namespace std::filesystem; int main() { cout << current_path() << endl; } $ g++ -std=c++17 ./main.cpp -lstdc++fs ./main.cpp</filesystem></iostream>…

Markdownでレポートを書いてPDFに変換する

今年で高校生になり、コロナの影響で登校はまだですが課題が配布され5月中に終えなければならなくなりました。 配布された資料を読み、レポートにまとめるのです。 印刷OKらしいのでパソコンでチャチャっとやってしまいましょう! 作戦 Markdownで作成したレ…

quickhl

前の記事でプラグインマネージャを導入したので、さっそく新しいプラグインを入れようかなと思います。 quickhl とは 単語単位で自由にハイライトを設定する事が出来るプラグインです。 インストールと設定 インストール 以下の行を .vimrc に追加して、vim…

dein.vimを導入

いつまでもフワフワ vim を使っていたため、入れているプラグインも Vaffle というファイラーのみ。 手動で入れたがそれが割とめんどくさくて、使ってみたいと思ったプラグインも導入の時点で諦めてしまっていたのです。 そんな状況を打開したく、何かとよく…

多重ポインタとconst

C C++

C/C++でのポインタ変数はアスタリスクとconstの位置関係によって「何が」constかが変わってきます。 例えばint型ポインタ変数の書き方は以下の様に4種類存在します。 - - - - *p = value p = pointer int * o o int const * x o int * const o x int const *…

Vaffleのキーマップ

Vimのプラグインはこれしか入れていないというのに忘れてしまいがち。 ヘルプファイルが英語なので毎回読むのはだるいですし、ここによく使うであろうものをメモ。 入力 動作 ~ $HOMEを開く h 親を開く l 子を開く t 新しいタブで開く <Space> 選択、解除 * 全て選</space>…

高校生になりました

コロナであたふたしてあまり実感ありませんが、僕は晴れて高校生となりました。 課題が今日配布され、気づいたのでした。

DXライブラリってユーザー定義の画像読み込み関数が使えるんだよ

DXライブラリ公式が対応した画像フォーマット以外読み込めないものだと思っていたが、そんなことはないらしい。 DXライブラリのソースコードを読んでいたところ、以下の関数を発見した。 extern int AddUserGraphLoadFunction4(int(*UserLoadFunc)(STREAMDAT…

VsVimでCTRL-C入力時のカーソル位置

普段はWSLでvimにgccとmakeを使ってプログラムを組んでるんだけど、Windows用のプログラムにはVisualStudioを使っています。 で、「vimのキーバインドでVisualStudioを操作できたら便利だよね」ってことで、VsVimを使用していました。 僕はインサートモード…

C++ストリーム系の雑なメモ

C++

文字列ストリームstrstreamは本当に文字配列をラップしただけであり、メモリ管理がクラスと使用者の間で行ったり来たりするので非推奨。 stringstreamを使うこと。 IO系インスタンスをbool型へ変換した場合、!fail()と同等。 fail()は(rdstate() & (ios::bad…

wslttyのubuntuターミナルショートカット起動時にエラーが出るようになった

WSL

wslttyを使用しているのですが、ある時から「Ubuntu Terminal」ショートカット起動時に下記画像のエラーが出るようになってしまいました。 この 'C:\Program Files\WindowsApps' はストアから落としたアプリの保存場所らしく、おそらくwslttyはこのフォルダ…