namespace 输出1_100之间的素数 { class Program { static void Main(string[] args) { int j, i; for (i = 2; i <= 100; i++) { for (j = 2; j <= i; j++) { if (i % j == 0) break; } if (j > (i / 2)) //这句话是什么意思?,为什么这样判断? Console.WriteLine("素数: " + i); } } } }
首先,得从素数的定义说起:指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
接着:就判断是否整除,从内部的for循环中,
if (i % j == 0) break;
必然会有一个j满足条件。如果是素数,那么这个j肯定是和i相等的。所以用最后一个条件判断是否是素数了。
你猜
不猜!
if (j > (i / 2)) 这句我觉的是写程序的人想多了,j>=i就行。
真想把豆豆给你!我试了,你的j>=i更好理解!
@小花晋: 你不觉的j==i更好理解吗?(除了1和此整数自身外)。
如果j>(i/2),表示循环了全部条件,都没找到 i%j==0的数,那么这个i就是素数了
你晚了!