using
System;
using
System.Collections.Generic;
using
System.Text;
namespace
FindTheNumber
{
class
Program
{
static
void
Main(
string
[] args)
{
int
[] rg =
{2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,26,27,28,29,30,31};
for
(Int64 i = 1; i < Int64.MaxValue; i++)
{
int
hit = 0;
int
hit1 = -1;
int
hit2 = -1;
for
(
int
j = 0; (j < rg.Length) && (hit <=2) ; j++)
{
if
((i % rg[j]) != 0)
{
hit++;
if
(hit == 1)
{
hit1 = j;
}
else
if
(hit == 2)
{
hit2 = j;
}
else
break
;
}
}
if
((hit == 2)&& (hit1+1==hit2))
{
Console.WriteLine(
"found {0}"
, i);
}
}
}
}
}
这是一个C#程序,有点看不懂,但是在大神告诉几点不认识的东西后,终于有点明白这个程序是什么意思。
1 一开始看到时候就以为可能是是一个循环查找的过程,通过不停的条件判断,不断的改变变量来实现功能,但是我好像忽略了一点东西,认为这个程序应该不像我想象的那样简单,在查阅电脑后明白,就是完成不能连续的两个整数不能被整除,应该就是这个意思,通过hit的值的变化来实现的。
2 我一开始认为可以笔算出来,应该10来次就能得出计算结果,但是我错了,这个数很庞大,我算了好久都没算出来。
3 我在电脑上没有运行出来,具体结果也不知道。
4 使用多核,多个的CPU,内存要大,并且在电脑上不要运行其他后台程序。挺高主频,使用更多位的操作系统。