30/09/2018, 16:00

Sửa lỗi bài tìm số nguyên tố gần với số n nhập từ bàn phím?

Đề bài : tìm số nguyên tố gần với số n nhập từ bàn phím (nêu n la sô nguyên tố thì n la kết quả luôn)

#include "stdio.h"
#include "math.h"
#include "conio.h"
int main(int argc, char* argv[])
{
int n,i,ngto, souoc,k,t,j,h,g,u1,u2;

            printf("nhap so can kiem tra: ");
           scanf("%d",&n);
            ngto=(n<2)?0:1;
            for(i=2;i<= sqrt((float)n);i++)
                if (n%i== 0)
                {
                    ngto =0;
                    break;
                }
                if(ngto==1)
                    printf("%d la so nguyen to gan nhat
",n);
                else
                {

                    for( k=1;k<=n;k++)
                    {
                        t=n-k;
                        u1=0;
                        for( j=2;j<=sqrt((double)t);j++)
                        {
                            if((t%j)==0 )
                            {
                                u1 ++;

                            }
                       }
                   if(j==(int)sqrt((double)t)) break;}
                for(g=1;g<=n;g++)
                {
                    h=n+g;
                    u2=0;
                    for( j=2;j<=sqrt((double)h);j++)
                    {
                        if((h%j)==0)
                        {
                            u2++;

                        }
                    }
                if(j==(int)sqrt((double)h)) break;}

            if ( (u1==0||u2==0) && k<g) printf("%d la so nguyen to gan nhat",t);
            else if ((u1==0 || u2==0) && k>g) printf("%d la so nguyen to gan nhat",h);
            else if(u1==0 && u2==0 && k==g)  printf("%d va %d la so nguyen to gan nhat",t,h);
        }


    return 0;
}
Phạm Hoàng Tuấn viết 18:00 ngày 30/09/2018

Mình thấy code bạn có vẻ không ổn lắm, hơi rắc rối. Ngoài ra, mình ngĩ bạn nên tách riêng các hàm, chức năng riêng, sẽ rất tốt cho bạn sau này. Mình có code bài này, bạn có thể tham khảo. Ngoài ra, khi post bài, bạn nên post tiêu đề cụ thể, ví dụ “sửa lỗi bài tìm số nguyên tố gần nhất”.

Le Tran Dat – 25 Sep 14

Làm thế nào để đặt một câu hỏi thông minh ?

Cách đặt một câu hỏi thông minh. (Ý kiến cá nhân + Luợt dịch từ How To Ask Questions The Smart Way – Eric Steven Raymond) I.Mở đầu: Đạt và nhiều người khác nữa đang hỗ trợ các bạn học sinh, s…

    #include "stdafx.h"
    #include "iostream"
    #include "Math.h"
    using namespace std;
    
    bool LaSoNguyenTo(int n)
    {
    	if (n < 2)
    		return false;
    	if (n == 2)
    		return true;
    	for (int i = 2; i <= sqrt(n); i++)
    	{
    		if (n%i == 0)
    			return false;
    	}
    	return true;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int n;
    	cout << "Nhap n: " << endl;
    	cin >> n;
    	if (n < 2)
    	{
    		cout << "Khong ton tai so nguyen to gan nhat"<<endl;
    		
    	}
    	else
    	{
    		for (int i = n; i >= 2; i--)
    		{
    			if (LaSoNguyenTo(i) == true)
    			{
    				cout << "So nguyen to gan nhat la: " <<i<< endl;
    				break;
    			}
    		}
    	}
    
    	system("pause");
    	return 0;
    	
    }
Nguyễn Minh Dũng viết 18:10 ngày 30/09/2018

@nsmks94 tạo topic khác để hỏi nhé, như vậy dễ trả lời hơn. Các bạn khác đừng nói gì về vấn đề @nsmks94 hỏi nữa, tránh loãng topic, Đạt tạm thời để bài này chưa xóa ngay. Sau 24h bài này sẽ được xóa.

Cảm ơn @nsmks94

Bài liên quan
0