C#で入力した数値の因数(約数)をすべて表示するプログラムの作り方
この記事では、ユーザーが入力した数値の因数(約数)をすべて表示するC#プログラムの作り方を解説します。
因数とは、その数を余りなく割り切ることができる整数のことです。たとえば、12の因数は「1、2、3、4、6、12」の6つになります。
手順1:数値を入力する
まず、因数を求めたい数値をコンソールから入力します。int.Parse()を使うことで、文字列として読み込んだ入力値を整数型に変換できます。
Console.WriteLine("Enter the Number:");
n = int.Parse(Console.ReadLine());手順2:ループで因数を判定する
次に、1から入力された数値まで順番にループ処理を行い、剰余演算子%を使って割り切れるかどうかを判定します。余りが0になれば、その数は因数です。
for (i = 1; i <= n; i++) {
if (n % i == 0) {
Console.WriteLine(i);
}
}サンプルコード全体
以下のコードを実行すると、入力した数値のすべての因数を画面に表示できます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
class ApplicationOne {
static void Main(string[] args) {
int n, i;
Console.WriteLine("Enter the Number:");
n = int.Parse(Console.ReadLine());
Console.WriteLine("Factors:");
for (i = 1; i <= n; i++) {
if (n % i == 0) {
Console.WriteLine(i);
}
}
Console.ReadLine();
}
}
}実行結果の例
たとえば「40」を入力した場合、プログラムの出力は次のようになります。
Enter the Number: 40 Factors: 1 2 4 5 8 10 20 40
補足:処理のポイント
- ループ変数
iを1から始めることで、必ず最小の因数である1が含まれます。 n % i == 0という条件式で、nがiで割り切れるかどうかを判定しています。- 最後の
Console.ReadLine()は、コンソール画面がすぐに閉じないようにするための待機処理です。
-
Pythonで数の偶数の約数の合計を求めるプログラムの実装方法
本記事では、以下の問題文に対する解決策について学びます。問題文整数 n が与えられたとき、その数の偶数の約数(偶因子)の合計を求めることが課題です。この問題を解くには、まず奇数の約数をすべて除外する必要があります。入力された数が奇数の場合、偶数の約数は一つも存在しないため、直接 0 を返します。そうでない場合は、以下のコードで示すアプローチに従います。アルゴリズムの考え方このアプローチでは素因数分解を活用します。約数の合計は「各素因数の冪乗の和の積」として表せるという性質を利用します。偶数の約数のみを対象とするため、素因数 2 の部分については 20(つまり 1)を除外し、21 以降の項だけを
-
Pythonプログラム:数の一意な素因数の積を求める方法
はじめに 本記事では、次の問題に対する解き方を学びます。 問題文: 整数 n が与えられたとき、その数が持つ一意な(重複しない)素因数をすべて求め、それらの積を返します。 例: 入力:num = 11 出力:積は 11 説明: 入力された数は 11 で、素因数は 11 のみです。 したがって、その積も 11 となります。 アプローチ1:総当たり法(ブルートフォース) i = 2 から n+1 までの for ループを使い、i が n の約数であるかどうかを確認します。約数であれば、さらに i 自身が素数かどうかを判定し、素数なら積に掛け合わせます。この処理を i が n に達するまで繰り返しま