アプリ版:「スタンプのみでお礼する」機能のリリースについて

c言語で2から入力したNまでの約数を表示するプログラムを作りたいのですがわかりません
また、int yakusu(int n)という関数を作って立てたいです
結果が2の約数 2
   3の約数 3
   4の約数 2 4
と表示されるようなプログラムを教えてください!
説明が下手だったらすみません。
宜しくお願いします。

A 回答 (2件)

#1さんに加えて。


ぶっちゃけ「約数を表示しろ」ってだけならハナクソ以下の問題で、こんなの小学生でも出来ます。
いや、「小学生でも出来る」ってのは「プログラミングが出来る」って言ってるんじゃなくって、アルゴリズムと言うより、この内容は「単なる算数だ」って事です。
これが「約数を手渡せ」なら途端に難易度が上がりますけどね(笑)。
つまり、プログラムの仕様としても、この問題は2個ばかし不明な点があります。

1. int yakusuu(int n)の挙動がハッキリと分からない。

これは2〜nの数それぞれに付いて約数を全部表示しろ、って言ってるんですかね?
例えば n = 4を入力したとして、

結果が2の約数 2
   3の約数 3
   4の約数 2 4

と2〜4までのそれぞれに付いて(1以外の)約数を表示しろ、って言ってるのか、あるいは

   4の約数 2 4

だけ表示すれば良いのか、が不明です。

2. int yakusuu(int n)は一体何を返すのか?がハッキリと分からない。

この関数は整数型intを返してくれ、って要求してるんですが、一方、

「と表示されるようなプログラム」

と書いてるんで、表示なんかの副作用を求めてるように思えます。
だとしたら、返り値は一体何にして欲しいんでしょうか。そのへんが良く分かりません。
単純に0を返すのか、1を返すのか、あるいは入力されたnを返すべきなのか・・・。

とまぁ、「要求仕様が良く分からない」ですねぇ。
    • good
    • 0

> 結果が2の約数 2


>    3の約数 3
>    4の約数 2 4
> と表示されるようなプログラムを教えてください!

まず、この三つの整数の約数の求め方は日本語で書けますか?

書けるのであればそれを日本語からC言語に翻訳するだけです。その場合、恐らく問題になるのは、その本体処理の前後に入る入出力処理。そしてそれは「この問題だからわからない」というものではないはずです。

書けないのであれば、それはプログラム言語の問題ではなく「課された問題を解くアルゴリズムがわからない」ということです。

ご自身が直面している課題の本質を理解しないと解決策は見えて来ません。
参考まで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!