半素数とは、その値が2つの素数の積で表される自然数である。たとえば、4(=2x2)、15(=3x5)は半素数である。 2〜20 の範囲の1つの自然数 n の値を入力すると、2x2 から nxn までの積の値を各行・各列に並べた掛け算九九(のような)表を出力するプログラムを作成しなさい。ただし、積の値が半素数である場合は、積の値の代わりに1つの #(半角シャープ)文字を出力し、それぞれの積(あるいは # 文字)は4文字幅右寄せで表示する。 また、n の値として指定された範囲以外の値が入力されると、プログラムは何も出力せずに終了するものとする。
C言語で上のようなプログラムを考えているのですが、中々上手くいきません。
コードの例など教えて欲しいです
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int primes[] = {2, 3, 5, 7, 11, 13, 17, 19};
bool is_member(int n) {
for (int i = 0; i < 8; i++) {
if (primes[i] == n) {
return true;
}
}
return false;
}
int is_divisible(int n) {
for (int i = 0; i < 8; i++) {
if (n % primes[i] == 0)
return n / primes[i];
}
return 0;
}
bool is_biprime(int n) {
return is_member(is_divisible(n));
}
int main(void) {
char s[3];
int m, n;
scanf("%2s%*[^\n]", s);
getchar();
n = strtol(s, NULL, 10);
if ((n < 2) || (n > 20)) {
goto end;
}
for (int i = 2; i <= n; i++) {
for (int j = 2; j <= n; j++) {
m = i * j;
printf(is_biprime(m) ? " #" : "%4d", i * j);
}
puts("");
}
end:
return EXIT_SUCCESS;
}
No.1
- 回答日時:
まずは、普通の九九の表を作ってください。
九九の表は、二つの数字の積であるのは間違いないので、九九の表の二つの数字のいずれもが素数の場合に、掛け算の結果は半素数になります。
だから、九九の表を出力できるようになったら、「素数×素数」の場合だけ、# を出力するように変更すれば良いです。
あと、プログラム関係の質問では、「うまくいきません」というのは、お勧めできません。「ここでつまずいています」なら、別の回答があると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Java Java 南京錠 2 2023/02/04 11:46
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
printfとputcharの違いは
-
コンセントの電力は入力と出力...
-
テキストファイルから特定の文...
-
cout と cerrの違い
-
COBOLのMOVEで桁数が異なる場合
-
coutで出力した文字を消去する...
-
プログラムについての質問です...
-
C# 標準出力のencodingをutf8に...
-
エクセルVBAでテキストファイル...
-
フィモーラでパソコンがスリー...
-
VBAでPowerPointからExcelにレ...
-
VBAでテキスト出力時のスペース...
-
VBA CSV出力について
-
CRC16計算について
-
VBA レジストリの値の読み方に...
-
アクセスでエクセルに出力する...
-
デジタルの絵を出力サービスに...
-
bashにてログを書き出すコマンド
-
プリンタ出力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
printfとputcharの違いは
-
VBA レジストリの値の読み方に...
-
プログラムについての質問です...
-
MMDでavi出力が出来ない
-
cout と cerrの違い
-
詳しくないので、どなたかお教...
-
COBOLのMOVEで桁数が異なる場合
-
ACCESS クエリ→フォーム...
-
VBAでテキスト出力時のスペース...
-
OBS配信すると、マイクが途切れ...
-
PS5をMacBookProに出力したいの...
-
コンセントの電力は入力と出力...
-
アクセスでエクセルに出力する...
-
printfの書式%.*s
-
Windows Formアプリからコンソ...
-
coutで出力した文字を消去する...
-
VBAで有効数字の設定
-
VBAのExecメソッドで画面を非表...
おすすめ情報