我有这个数字x,我需要在(40 mod x)= 1
中找到x的可能答案是3或39,因为它进入数字40并留下余数1。
如果我要找到x的所有可能答案,我需要什么样的代码?
答案 0 :(得分:3)
在数学上,要解决(a mod x) = b
,只需查找a-b
的所有除数,而不是a
的除数。例如对于(40 mod x) = 1
,找到40 - 1(即39)的除数,即3,13和39. 40的除数是2,4,5,8,10,20,40。第一组中的数字在第二组中,因此解是3,13和19。
对于(40 mod x) = 5
,你会发现除数为40 - 5(即35),即5,7和35. 5是40的除数列表,但是其他两个不是,所以解决方案是7和35。
当然,对于这么少的数字,找到a
和a-b
的所有因素比单纯执行a
的所有试验划分要多得多。 x
,所以正确解决问题的方法就是把你提出的问题完全解释并放入代码中(原谅我的VB,过去15年我没有写过任何问题)左右......)
for x = 2 to 39
if (40 % x) = 1
MsgBox(x)
end if
next
答案 1 :(得分:1)
Enumerable.Range(1, 40).Where(Function(x) 40 Mod x = 1)
答案 2 :(得分:0)
该问题的答案是一组独特的整数因子39。
您可以通过从1
循环到Math.Sqrt(39)
并检查可分性来找到它们。