Announcement

Collapse
No announcement yet.

Gợi ý giải bài tập C

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gợi ý giải bài tập C

    Đề: viết hàm nhận vào số nguyên n , phân tích n thành thừa số nguyên tố dưới dạng tích các lũy thừa
    vd 450 sẽ thành 2*3^2*5^2
    em có chương trình sau nhưng chỉ làm ra 450 thành 2 3 3 5 5 chứ không đúng yêu cầu đề bạn/anh chị giúp em sửa lại với, cảm ơn nhiều
    PHP Code:
    #include<stdio.h>
    #include<conio.h>

    void thua_so_ngto(int(n)) {
    for(
    int i=2;i<=n;i++)
    while (
    n%i==0) {
        
    printf("%3d",i);
        
    n=n/i;
    }
    }
    int main() {
        
    printf("Nhap N"); int nscanf("%d",&n);
        
    printf("So %d duoc phan tich thanh",n);
        
    thua_so_ngto(n);
        
    getch();

    :sexy::sexy::sexy: BMSG

  • #2
    Bạn có thể dùng một biến để đếm số lần xuất hiện của mỗi số nguyên tố trong kết quả phân tích, và chỉ in ra kết quả sau khi xét xong số (nguyên tố) đó.

    PHP Code:
    void thua_so_ngto(int n
    {
        
    int notFirst 0;
        for(
    int i 2<= ni++)
        {    
            
    int count 0;
            while (
    == 0
            {
                
    count++; // dem so lan xuat hien cua i trong ket qua phan tich
                
    i;
            }

            if (
    count 0)
            {
                if (
    notFirstprintf(" * "); notFirst 1;
                
    printf("%d"i);
                if (
    count 1printf("^%d"count);
            }
        }

    Kết quả:
    PHP Code:
    Nhap N450
    So 450 duoc phan tich thanh
    3^5^
    Last edited by 09520243; 22-11-2013, 11:06.

    Comment

    LHQC

    Collapse
    Working...
    X