C言語で入力された自然数を素因数分解するためのサンプルプログラム

今回は、C言語で入力された自然数を素因数分解するためのサンプルプログラムを作成したので紹介したいと思います!

コードは下記のようになります!

#include <stdio.h>

int input(void) {
	printf("入力された自然しいを素因数分解します。\n自然数Aを入力してください。\n");
	int number;
	printf("A=");
	scanf_s("%d", &number);
	return number;
}

int main() {

	int number;
	number = input();

	if (number == 1) {
		printf("1=1");
		return -1;
	}
	if (number < 1) {
		printf("自然数を入力してください。");
		return 1;
	}
	printf("%d=", number);

	int count;
	count = 0;

	while (number % 2 == 0) {
		if (count != 0) {
			printf("×");
		}
		printf("2");
		number /= 2;
		count++;
	}

	for (int i = 3; i <= number; i++) { 
		while (number % i == 0) {
			if (count != 0) {
				printf("×");
			}
			
			printf("%d", i);
			number /= i;
			count++;
		}
	}

	return 0;
}

実行結果

入力された自然しいを素因数分解します。
自然数Aを入力してください。
A=28
28=2×2×7

入力された自然しいを素因数分解します。
自然数Aを入力してください。
A=64
64=2×2×2×2×2×2