Đả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!

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.

1 Like

:smile: cảm ơn bạn !

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;}
	} 
}

… 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.

1 Like

:sweat_smile:
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!

cho 7 bien so dau tien chay tu 1->9 cac so con lai chay tu 0->9 cho 7 vong lap chay xen ke vao nhau roi vong lap cuoi x=A*10000000+…+G roi ghi dieu kien

1 Like

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.

5 Likes

ah ha bạn nghĩ cũng hay thật

1 Like

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

1 Like

cảm ơn bạn!..

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?