下のソースコードは例えば5と打つと
5! = 3 1 1
という出力がでます。
これは5の階乗を素数に分解して2が3個、3が1個、5が1個と表しています。
他例は53と打つと
53! = 49 23 12 8 4 4 3 2 2 1 1 1 1 1 1 1
となります。
これを15個目で改行できるようにしたのですがどこにどう入れればできますか?
正解例:
53! = 49 23 12 8 4 4 3 2 2 1 1 1 1 1 1
1
70! = 67 32 16 11 6 5 4 3 3 2 2 1 1 1 1
1 1 1 1
#include <stdio.h>
int main(void)
{
int i, j ,n = 0;
while(scanf("%d", &n) == 1) { if (n == 0) break; if (2 <= n && n <= 100) { int prime[n+1]; printf("%3d! =", n); for (i = 2; i <= n; i++) { prime[i] = 1; } for (i = 2; i <= n; i++) { if (prime[i]) { for (j = i*2; j <= n; j += i) { prime[j] = 0; } } } for (i = 2; i <= n; i++) { if (prime[i]) { prime[i] = 0; for (j = i; j <= n; j *= i) { prime[i] += n/j; } printf("%3d", prime[i]); } } printf("\n"); } } return 0;
}
回答2件
あなたの回答
tips
プレビュー