- ベストアンサー
Haskell整数の各桁を要素とするリストを返す
- Haskellを使って、正の整数の各桁を要素とするリストを返す関数が必要です。
- 質問者はHaskellを試してみようと思い、整数の各桁を要素とするリストを作りたいと考えています。
- 現在のコードにはエラーがあり、整数の割り算の部分が問題です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- f(x)を整式とする。また、a,b,nを整数とする
f(x)を整式とする。また、a,b,nを整数とする。 このときmod n で考えて a≡bならばf(a)≡f(b)は成り立ちますか?
- 締切済み
- 数学・算数
- c++ 整数値の各桁を足し合わせるプログラム
上記の通りの質問です #include <iostream> using namespace std; int main () { int x; int sum = 0; cout << "正の整数値の各桁を足す。\n " ; do{ cout << "正の整数値:"; cin >> x; }while (x <= 0); cout << "足すと"; while (x > 0){ cout << sum += x % 10; x /= 10; return sum; } cout << "です。\n " ; } とまでは書けましたがうまくいきません。 初心者なので簡単かもしれませんがお願いします。
- ベストアンサー
- C・C++・C#
- 代数学の、整数の合同の問題を教えて下さい。
この問題がわからず困っています。 (1)n,mは互いに素な整数とする。 このとき、sn+tm=1となる整数s,tが存在する。 a,bを整数とする時、x=bsn+atmとおく。このとき、xは合同式 x≡a mod n x≡b mod m を満たすことを示しなさい。 (2)さらに、xをnmで割った余りをrとする。この時rは r≡a mod n r≡b mod m を満たすことを示しなさい。 という問題です。 分かる方、よろしくお願いいたします
- ベストアンサー
- 数学・算数
- c++ 各桁の整数値を足すプログラム
上記の通りの質問です #include <iostream> using namespace std; int main () { int x; int sum = 0; cout << "正の整数値の各桁を足す。\n " ; do{ cout << "正の整数値:"; cin >> x; }while (x <= 0); cout << "足すと"; while (x > 0){ cout << sum += x % 10; x /= 10; } return sum; cout << "です。\n " ; } とまでは書けましたがうまくいきません。 初心者なので簡単かもしれませんがお願いします。 また、sum += x% 10 と書いたときにオペラントと一致する演算子がないとでます。
- ベストアンサー
- C・C++・C#
- オイラーの定理(整数)
nは自然数、aは整数とする。aとnが互いに素な時、a^{φ(n)}≡1( mod n)が成り立つ。 ここでφ(n)は「n以下の自然数でnと互いに素なものの個数を表す」"オイラーの関数"である。 この定理の例証で、例えばn=45=3^(2)*5のときa=7として考えます。 φ(45)=φ(3^2)*φ(5)となり、φ(3^2)=6、φ(5)=4です。 フェルマーの小定理よりmod 5 で、7^φ(45)={7^φ(5)}^φ(3^2)は {7^φ(5)}≡1 (mod 5)より、7^φ(45)≡1 (mod 5 )・・・(1)になり。 次に7^φ(3^2)≡1(mod 3^2)をしるします。フェルマーの小定理より mod 3 で 7^(3-1)≡1なので7^(3-1)=3k+1、 7^φ(3^2)={7^(3-1)}^3=(3k+1)^3=(3k)^3+3C1(3k)^2+3C2(3k)+1 3C1、3C2は3の倍数なので、7^φ(3^2)≡1(mod 3^2)・・・(2)です。 よって、7^φ(45)={7^φ(3^2)}^φ(5)≡1(mod 3^2)となります。 ここからが分からない箇所なのですが、中国の剰余定理から、 (1)かつ(2)⇔7^φ(45)≡■(mod 3^(2)*5)となる■が、1つだけ存在します。と書いてありますが、自分は中国の剰余定理は、m、nを互いに素な自然数とする。 x≡a(mod m)かつ x≡b(mod n)を満たす整数xはmnを法として、ただ1つ存在する。と書いてあることから、割る数が違えば、a,bのように余りもちがう場合に、整数xはmnを法として、ただ1つ存在する。と思っていたのですが、 この例証では、■≡7^φ(45) (mod 5)かつ■≡7^φ(45) (mod 3^2)のような余りが 一緒の場合を同時に満たす■を求めているような気がして、中国の剰余定理があてはまるか不安です。 自分の考えの間違いや、余りが一緒の場合でも中国の剰余定理が使えるかを教えてください。お願いします。 本では、■=1のとき(1)、(2)が成り立つので、■=1だとわかります。 よって7^φ(45)≡1(mod 45 )となることがしるされました。としめくくっています。
- ベストアンサー
- 数学・算数
- 正の整数を1つ読み込み、それを倍々しながら1000を超える直前まで書き出すプログラム
int main(void) {int a, n = 10; printf("aを入力 > "); scanf("%d", &a); while (n--) { printf("%d ", a); a *= 2; }return 0; これが、正負に関わらない整数を読み込み、10回書き出すもので、他は同じです。1000を越える直前のa<1000をどこに入れたらいいですか? aが変化しているので、a *= 2;のあとに入れてもエラーがでてしまいます。
- 締切済み
- C・C++・C#