Thứ Sáu, 11 tháng 12, 2015

Chương trình nhập N và P, phân tích N! ra thừa số nguyên tố và xuất số mũ của cơ số P ra màn hình

#include<stdio.h>
#include<conio.h>

int giaithua(int n)
{
    int gt = n;
    for (int i = 1; i < n; i++)
        gt *= i;
    return gt;
}

int ktnt(int n)
{
    if (n == 1)
        return 0;
    if (n == 2)
        return 1;
    for (int i = 2; i*i <= n; i++)
        if (n%i == 0)
            return 0;
    return 1;
}

void phantich(int gt, int a[])
{
    for (int i = 0; i < 20; i++)
        a[i] = 0;
    printf("\nPhan tich N! ra thua so nguyen to: ");
    int i = 2, dem = 0;
    while (gt>1)
    {
        if (ktnt(i)==0)
        {
            i++;
            continue;
        }
        if (gt % i == 0)
        {
            gt = gt / i;
            dem++;
            continue;
        }
        else
        {
            a[i] = dem;
            printf(" %d^%d ", i, dem);
            i++;
            dem = 0;
            continue;
        }
           
    }
    a[i] = dem;
    printf(" %d^%d ", i, dem);
}


void main(void)
{
    int n, p, gt, a[20];
    printf("Nhap n: ");
    scanf("%d", &n);
    gt = giaithua(n);
    printf("\nN! = %d", gt);
    phantich(gt,a);
    printf("\nNhap co so P: ");
    scanf("%d", &p);
    printf("\nSo mu la: %d", a[p]);
    getch();
}

Không có nhận xét nào:

Đăng nhận xét