【C语言】判断并打印输出素数的两种方法

 系列文章目录

 C语言基础整体框架(二)http://t.csdn.cn/QyW6l

C语言基础整体框架(二)http://t.csdn.cn/BqPr5

猜数字游戏--分支循环 http://t.csdn.cn/SNUTz

输出闰年的三种方法 http://t.csdn.cn/xj7ie

目录

前言

问题描述:

1.使用循环分支函数输出素数

 2.写一个函数,判断一个数是否为素数

最后


前言

从函数与分支、循环两方面针对素数的输出做出介绍。

问题描述:

在屏幕上打印输出100~200的素数。


提示:提示:以下是本篇文章正文内容,下面案例可供参考,欢迎大佬批评指正~

一、输出素数的两种方法 

1.使用循环分支函数输出素数

for的嵌套循环,用试除法,将待判断的数 i 除以 j 属于2~n-1即可,在这个范围内如果

i%j == 0 ,则说明 i 不是素数,否则为素数,并借助flag来判断。

//试除法
int main()
{
	int i;
	int j;
	int count = 0;
	for (i = 1; i <= 200; i++)
	{
		int flag = 1;//表示是素数
		//判断i是否为素数,使用2~i-1之间的数字去试除i
        //for(j=2;j<=sqr(i);j++)
		for (j = 2; j < i; j++)  
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
		{
			printf("%d ", i);
			count++;
		}
	}
	printf("\n%d", count);
	return 0;
}

 2.写一个函数,判断一个数是否为素数

is_primer()为自定义函数

库函数不是万能的,因此需要自己定义所需函数,自定义函数和库函数一样,有函数名、返回值类型和函数参数,与库函数不一样的是这些都是我们自己来设计。

for循环

for(j=2;j<=sqrt(n);j++) 在上一种方法中从2~n-1试除,同样也可以用2~sqrt(n),n的平方根,

减少堆内存的使用。


#include<math.h>
int is_primer(int n)   //自定义函数
{
	int j;
	for (j = 2; j <= sqrt(n); j++)
	{
		if (n % j == 0)
			return 0;
	}
	return 1;
}
int main()
{
	//打印100~200之间的素数
	int count=0;
	int i;
	for (i = 100; i <= 200; i++)
	{
		if (is_primer(i) == 1)
		{
			printf("%d ", i);
			count++;
		}
	}
	printf("\n%d\n", count);
	return 0;
}

 count用来计算输出的素数个数,判断一个数为素数是就执行count++,即count=count+1。

调用函数的方法只是将循环放入自定义函数中。


最后

快乐的时光总是短暂的,以上就是今天要讲的内容,本文继续简单介绍了小赵同志对C语言以及素数输出的初步认知,并对所用到的知识做了简单介绍。欢迎家人们批评指正。小赵同志继续更新,不断学习的动力是宝子们一键三连的支持呀~

猜你喜欢

转载自blog.csdn.net/weixin_70411664/article/details/127283808