猿问

大神求帮助,我有两个地方不是很懂;题目是找出1000以内的质数(大于1的自然数且只能被1和本身整除的数)

#include <stdio.h>
int main(void)
{
	int i, num;
	unsigned long counter = 0;//定义运算的次数

	num = 2;
	printf("%d\n", num++);//这一步跟下面的循环有什么联系吗?为什么没有输出来呢?

	for (; num <= 1000; num += 2)//这个地方num+=2为什么说是只把奇数作为判断对象? 
	{
		for (i = 2; i < num; i++) 
		{
			counter++;
			if (num % i == 0)
				break;
		}
		if (num == i)
			printf("%d\n", num);
	}

	printf("乘除运算的次数: %lu\n", counter);

	return 0;
}


叫什么名字好呢1
浏览 1967回答 2
2回答

luofuxiang

解释写在代码注释里,楼主请“移目”。╰( ̄▽ ̄)╭#include <stdio.h> int main(void) {     int i, num;     unsigned long counter = 0;//定义运算的次数     num = 2;     printf("%d\n", num++);//这里有输出,2 就是输出的结果     //上面那句的执行流程是,先打印num(即:2),然后num自增1(即num = num +1;),此时num = 3;     for (; num <= 1000; num += 2)//执行到这里时num=3,每次+2,     {                            //判断对象的序列为3,5,7,9,...,所以说只把奇数作为判断对象         for (i = 2; i < num; i++)         {             counter++;             if (num % i == 0)                 break;         }         if (num == i)             printf("%d\n", num);     }     printf("乘除运算的次数: %lu\n", counter);     return 0; }

L49579

 printf("%d\n", num++);//这一步跟下面的循环有什么联系吗?为什么没有输出来呢? //这里输出了2,然后num自加1for (; num <= 1000; num += 2)//这个地方num+=2为什么说是只把奇数作为判断对象?// 大于2的偶数都不是素数,因此不需要对大于2的偶数进行判断 
随时随地看视频慕课网APP
我要回答