teratail header banner
teratail header banner
質問するログイン新規登録
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

AtCoder

AtCoderは、日本の競技プログラミングサイト「AtCoder」に関する内容です。

Q&A

解決済

1回答

183閲覧

アルゴリズムと数学 実演問題集 007についての質問

N.hajik

総合スコア7

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

AtCoder

AtCoderは、日本の競技プログラミングサイト「AtCoder」に関する内容です。

0グッド

0クリップ

投稿2025/06/27 14:50

0

0

実現したいこと

AtCoder上で以下のプログラムを提出すると不正解(WA)となります。何が間違っているのかを知りたいです。

問題文

N以下の正の整数の中で、Xの倍数またはYの倍数であるものの個数はいくつありますか?

  • 制約
    1≤N≤10^6
    1≤X<Y≤10^6
    入力は全て整数

  • 入力
    入力は以下の形式で標準入力から与えられます。

N X Y
  • 出力
    答えを出力してください。

該当のソースコード

C++

1#include <iostream> 2using namespace std; 3 4int N, X, Y; 5int Ans; 6 7int main(){ 8 cin >> N >> X >> Y; 9 10 Ans += (N / X); 11 Ans += (N / Y); 12 Ans -= (N / (X * Y)); 13 14 cout << Ans << endl; 15}

リンク

AtCoderでの当該問題

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2025/06/27 19:39

例えば、Y が X の倍数になっている場合を考えます。 N = 10, X = 2, Y = 4 質問文にあるコードを実行すると結果は 6 になります。ですが、実際には 2, 4, 6, 8, 10 が該当しますので正解は 5 になります。 もっとも、この条件を考慮したコードでも WA が出ますが。
N.hajik

2025/06/28 03:00

回答ありがとうございます。確かに、X,Yに公約数がある場合に上手くいきませんね。
guest

回答1

0

ベストアンサー

以下の入力例に対し、正しい出力は4になるはずですが(4, 6, 8, 12)、ご提示のコードだと5になります。

12 4 6

投稿2025/06/27 23:23

編集2025/06/27 23:43
actorbug

総合スコア2513

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

N.hajik

2025/06/28 03:00

回答ありがとうございます。確かに、X,Yに公約数がある場合に上手くいきませんね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問