while循环 示例

37 阅读1分钟

//1.判断一个数是否为素数

int main() {
	int n;
	while (1) {
		printf("请输入一个整数(输入0表示退出):");
		scanf_s("%d", &n);
		if (n == 0) {
			break;
		}
			int isprime = 1;
			int i = 2;
			while (i <= n - 1) {
				if (n % i == 0) {
					printf("%d能整除\n", i);
					isprime = 0;
				}
				i++;
				break;
			}
			if (isprime == 1) {
				printf("%d是素数\n", n);
			}
			else {
				printf("%d不是素数\n", n);
			}

	}
	return 0;
}

素数是指大于 1 且只能被 1 和自身整除的自然数。这段代码的功能是循环接收用户输入的整数,判断其是否为素数,输入 0 时退出程序。修正后,当找到一个能整除n的数i时,就可确定n不是素数,退出循环;若遍历完所有可能的因数都没有找到能整除的数,则n是素数。

image.png


//2. s = 1-1/2+1/3..... -1/18+1/19

int main() {
	double s = 0;
	int i = 1;
	while (i <= 19) {
		printf("%d\n", i);
			if (1 % 2 == 0) {
				s -= 1.0 / i;
			}
			else {
				s += 1.0 / i;
			}
			i++;
	}
	printf("s=%f\n", s);

	return 0;
}
	

这段代码的功能是计算级数 1 - 1/2 + 1/3 - 1/4 + ... + 1/19 的和。通过循环遍历 1 到 19 的整数,根据i的奇偶性来决定是加还是减对应分数,最终输出计算结果。

image.png