素数を生成するC言語コード

以下は、指定された範囲内の素数を生成するシンプルなC言語のコードです。この例では、1からnまでの素数を列挙します。 #include <stdio.h>#include <stdbool.h> bool isPrime(int num) { if (num <= 1) return false; if (num <= 3) return true; if (num % 2 == 0 || num % 3 == 0) return false; for (int i = 5; i * i <= num; i += 6) { if (num % i == 0 || num % (i + 2) == 0) return false; } return true; } void printPrimes(int n) { printf("2 "); for (int i = 3; i <= n; i += 2) { if (isPrime(i)) { printf("%d ", i); } } printf("\n"); } int main() { int n; printf("素数を生成する範囲の最大値を入力してください: "); scanf("%d", &n); printf("1から%dまでの素数は以下の通りです:\n", n); printPrimes(n); return 0; } このコードは以下のように動作します:...

Mathematica入門

Mathematica入門 方程式を解く Solve[x^2 - 3 x + 2 == 0, x] 出力 {{x -> 1}, {x -> 2}} 整数の範囲で方程式の解を求める Solve[x^2 - 3 x + 2 == 0 && 0 <= x <= 2, x, Integers] 出力 {{x -> 1}, {x -> 2}} 連立方程式を解く Solve[{x + y == 3, x - y == 1}, {x, y}] 出力 {{x -> 2, y -> 1}} 不等式を解く Reduce[x^2 - 3 x + 2 > 0, x] 出力...

Mathematicaで巡回セールスマン問題を解く

Mathematicaで巡回セールスマン問題を解く 問題 電車でこんな広告を見かけました😁📸 pic.twitter.com/iXEgvtXrpL — 早稲田大学 早水桃子研究室 (@hayamizu_lab) October 11, 2022 解法 d=SparseArray[{{1,2}->10,{2,1}->10,{1,5}->15,{5,1}->15,{1,4}->12,{4,1}->12,{1,3}->20,{3,1}->20,{2,5}->10,{5,2}->10,{3,4}->10,{4,3}->10,{3,8}->30,{8,3}->30,{3,7}->20,{7,3}->20,{3,6}->25,{6,3}->25,{4,5}->15,{5,4}->15,{4,8}->20,{8,4}->20,{5,9}->18,{9,5}->18,{5,8}->15,{8,5}->15,{6,7}->5,{7,6}->5,{7,8}->35,{8,7}->35,{8,9}->12,{9,8}->12},{9,9},Infinity]; SparseArray関数で行列を作成する。それぞれの要素は、その要素の行と列の都市間の距離を表します。例えば、最初の要素{1,2}->10は、1と2の距離が10という意味です。最後から2番目の要素{9,9}は行列の大きさを示していて、最後の要素Infinityは、指定していない都市間の道の長さが無限。つまり道がないことを意味します。 {len,tour}=FindShortestTour[{1,2,3,4,5,6,7,8,9},DistanceFunction->(d[[#1,#2]]&)] FindShortestTour関数で、簡単に巡回セールスマン問題を解くことができます。{1,2,3,4,5,6,7,8,9}は、都市の番号を表します。DistanceFunction->(d[[#1,#2]]&)は、都市間の距離を表す行列dを渡しています。 出力 {137, {1, 2, 5, 9, 8, 7, 6, 3, 4}} 出力は、最短距離と、そのときの巡回路です。最短距離は137、巡回路は1→2→5→9→8→7→6→3→4→1となります。ABCの順に直すとA, B, E, I, H, G, F, C, Dとなります。

Rustで素数を列挙する

Rustで素数を列挙するプログラムを書いてみました。 fn main(){letmax=1000;letmutprimes=vec!...