1. 程式人生 > 其它 >【C語言程式練習】判斷從鍵盤讀入的正整數x是否為質數

【C語言程式練習】判斷從鍵盤讀入的正整數x是否為質數

技術標籤:C++學習筆記C語言c語言

判斷從鍵盤讀入的正整數x是否為質數,並輸出判斷結果

#include<stdio.h>
#include<math.h>
int main()
{
	int x, k, i;
	printf("請輸入一個正整數x:");
	scanf_s("%d", &x);
	if (x <= 0)
		printf("請輸入一個正整數:");
	else if (x == 1)
		printf("%d is not a prime.\n", x);
	else
	{
		//判斷從2到平方根的數字是否都能被整除即可
		k = (int)sqrt(x);
		for (i = 2; i <= k; i++)
			if (x%i == 0)
				break;
		if (i > k)
			printf("%d is a prime,\n", x);
		else
			printf("%d is not a prime.\n", x);
	}
	return 0;
}


執行結果:
在這裡插入圖片描述
在這裡插入圖片描述

在此基礎上改寫,找出規定範圍(a,b)內的所有質數,並按每行5個的格式輸出。(這裡a,b變數從鍵盤輸入並且範圍為:10≤a≤b≤1000)

#include<stdio.h>
#include<math.h>
int main()
{
	int x, k, i, count = 0, a, b;
	printf("請輸入正整數a,b:");
	scanf_s("%d,%d", &a, &b);
	if (a < 10 || b>1000 || a > b)
		printf("請輸入a和b使得10<=a<=b<=1000!");
	else
		for (x = a + 1; x < b; x++)
		{
			//判斷是否是質數
			k = (int)sqrt(x);
			for (i = 2; i <= k; i++)
				if (x%i == 0)
					break;
			//按照每行5個的格式輸出
			if (i > k)
			{
				count++;
				printf("%5d", x);
				if (count % 5 == 0)
					printf("\n");
			}
		}
	printf("\n");
	return 0;
}


執行結果:
在這裡插入圖片描述