在敲代码时,遇到的这道题。后来搜索了下。

找到了一些简单的方法:(质数又称素数,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。)

这个是多组输入,单个判断是否为素数,想要结束时按Ctrl+Z。

#include<stdio.h>
#include<math.h>
int main()
{
	int n=0;
	while (~scanf("%d", &n))
	{
		int i = 0;
		int k = sqrt(float(n));
		for (i = 2; i <= k; i++)
		if (n%i == 0)
		    break;
		if (i <= k)
			printf("%d 不是素数\n", n);
		else
			printf("%d 是素数\n", n);
	}
	return 0;
}


输出100以内的所有素数。(第一种方法)

#include<stdio.h>
int main()
{
	int i = 0;
	int count = 0;
	for (i = 2; i <= 100; i++)
	{
		int j = 0;
		for (j = 2; j < i; j++)
		{
			if (i%j == 0)
				break;
		}
		if (i == j)
			printf("%d是素数\n", i);
		else
			printf("%d不是素数\n", i);
		count++;
	}
	printf("%d\n", count);
	return 0;
}


输出100以内的所有素数。(第二种方法)

#include<stdio.h>
int main()
{
	int i = 0;
	int count = 0;
	printf("2是素数\n");
	for (i = 3; i <= 100; i += 2)
	{
		int j = 0;
		for (j = 2; j < i; j++)
		{
			if (i%j == 0)
				break;
		}
		if (i == j)
			printf("%d是素数\n", i);
		else
			printf("%d不是素数\n", i);
		count++;
	}
	printf("%d\n", count);
	return 0;
}


输出100以内的所有素数。(第三种方法)

#include<stdio.h>
#include<math.h>
int main()
{
	int i = 0;
	int count = 0;
	for (i = 2; i <= 100; i++)
	{
		int j = 0;
		for (j = 2; j <=sqrt(float(i)); j++)
		{
			if (i%j == 0)
				break;
		}
		if (j<=sqrt(float(i)))
			printf("%d不是素数\n", i);
		else
			printf("%d是素数\n", i);
		count++;
	}
	printf("%d\n", count);
	return 0;
}


输出100以内的所有素数。(第四种方法)

#include<stdio.h>
#include<math.h>
int main()
{
	int i = 0;
	int count = 0;
	printf("2是素数\n");
	for (i = 3; i <= 100; i += 2)
	{
		int j = 0;
		for (j = 2; j <= sqrt(float(i)); j++)
		{
			if (i%j == 0)
				break;
		}
		if (j <= sqrt(float(i)))
			printf("%d不是素数\n", i);
		else
			printf("%d是素数\n", i);
		count++;
	}
	printf("%d\n", count);
	return 0;
}


以上就是我觉得比较简单的一些方法。

素数的求解方法很多,感兴趣的可以去研究下!