01/10/2018, 16:12

Đảo của số nguyên 7 chữ số là số nguyên tố?

bt:viết chương trình in ra số nguyên 7 chữ số sao cho đảo của nó là số nguyên tố?? c++
mình viết hàm thế này:

int dsnt()
{
	int i,j,a,k,cou=0,dem=0,sum=0;
	for (i=1000000;i<=9999999;i++)
	{
		j=i;
		while (j>0)
		{
			a=j%10;
			sum++;
			if (sum==1){dem=dem+a*1000000;}
			if (sum==2){dem=dem+a*100000;}
			if (sum==3){dem=dem+a*10000;}
			if (sum==4){dem=dem+a*1000;}
			if (sum==5){dem=dem+a*100;}
			if (sum==6){dem=dem+a*10;}
			if (sum==7){dem=dem+a*1;}
			j=j/10;
		}
		for (k=2;k<=sum;k++)
		{
			if (sum%k==0){cou=cou+k;}
		}
		if (cou==sum){cout << i << endl;}
	} 
}

nhưng không hiểu sao kết quả nó in ra sai???
mn giúp mình chỉ ra lỗi sai vs??? cảm ơn!

rogp10 viết 18:20 ngày 01/10/2018

Ngay từ phần đảo số đã là không đúng, vì sum tăng không ngừng, vả lại thường người ta sẽ không viết như vậy mà dùng Horner.

minh viết 18:18 ngày 01/10/2018

cảm ơn bạn !

minh viết 18:26 ngày 01/10/2018

Horner.

int dsnt()
{
	int i,j,a,k,cou=0,dem=0,sum=0;
	for (i=1000000;i<=9999999;i++)
	{
		j=i;
		sum=0;
		while (j>0)
		{
			a=j%10;
			sum++;
			if (sum==1){dem=dem+a*1000000;}
			if (sum==2){dem=dem+a*100000;}
			if (sum==3){dem=dem+a*10000;}
			if (sum==4){dem=dem+a*1000;}
			if (sum==5){dem=dem+a*100;}
			if (sum==6){dem=dem+a*10;}
			if (sum==7){dem=dem+a*1;}
			j=j/10;
		}
		cou=0;
		for (k=2;k<=sum;k++)
		{
			if (sum%k==0){cou=cou+k;}
		}
		if (cou==sum){cout << i << endl;}
	} 
}
rogp10 viết 18:16 ngày 01/10/2018

… bởi vì cho thẳng số vào vừa không tổng quát mà vừa dài dòng nữa.

minh viết 18:22 ngày 01/10/2018


uhm, tại mình chưa biết dùng Horner, (mới học mấy tuần thôi), để thử dùng cách đó xem, cảm ơn b nhiều!

HK boy viết 18:17 ngày 01/10/2018

Bạn làm khổ sở quá.

Bạn có thể nghĩ đến việc chạy 1 loạt số nguyên tố (có thể dùng sàng), rồi lật ngược số đó, xem số lật ngược có phải là số có 7 chữ số hợp lệ không.

rogp10 viết 18:25 ngày 01/10/2018

Đúng vậy, số nguyên tố không thể tận cùng bằng 0 nên cứ vô tư đi.

minh viết 18:14 ngày 01/10/2018

cảm ơn bạn!..

Bài liên quan
0