【C语言之素数全家桶】判断一个数是否为素数;求100以内的所有素数;输入一个整数n,求出小于或等于n的所有素数;求绝对素数

导读:本篇文章讲解 【C语言之素数全家桶】判断一个数是否为素数;求100以内的所有素数;输入一个整数n,求出小于或等于n的所有素数;求绝对素数,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

素数概念:素数也称为质数,是一个大于1的自然数,且除了1和它本身外,不能被其他自然数整除。
如:2、3、5、7、11、13、17等

代码实现如下:

#include<stdio.h>

void main()
{
	int n,i,flag=1;//默认flag=1是素数
	scanf("%d",&n);
	for(i=2;i<n;i++)//遍历除了1和它本身外所有自然数
		if(n%i==0)//如果2-n之间有一个数能整除n,n就不是素数
			flag=0;
	if(flag==1)
		printf("%d是素数\n",n);
	else
		printf("%d不是素数\n",n);
}

运行结果如下:
在这里插入图片描述
在这里插入图片描述

2. 求100以内的所有素数

代码实现如下:

#include<stdio.h>

void main()
{
	int i,j;
	for(i=2;i<100;i++)//遍历100以内的自然数 
	{
		for(j=2;j<i;j++)//遍历除了1和它本身外所有自然数
			if(i%j==0)//如果2-i之间有一个数能整除i,i就不是素数
				break;
		if(j>=i)//如果j>=i说明2-i之间的数全部整除了一遍i,如果j<i说明还有数没有整除完
			printf("%d ",i);
	}
	printf("\n");
}

运行结果如下:
在这里插入图片描述

3. 输入一个整数n,求出小于或等于n的所有素数

题目:编写函数int fun(int n,int a[N]),该函数的功能是求出小于或等于n的所有素数,并放在a数组中,该函数返回所求出的素数的个数。

如n为15时有2、3、5、7、11、13共6个。

代码实现如下:

#include <stdio.h>
#define N 100

int fun(int n,int a[N]);

void main()
{
	int n,a[N],count,i;
	scanf("%d",&n);
	count=fun(n,a);
	printf("%d以内的素数一共有%d个\n",n,count);
	printf("%d以内的素数如下:\n",n);
	for(i=0;i<count;i++)
		printf("%d ",a[i]);
	printf("\n");
}

int fun(int n, int a[N])
{
int i,j,k=0;//k为素数个数,初始值为0
for(i=2;i<=n;i++) //求出小于或等于n的全部素数
{
	for(j=2;j<i;j++)
		if(i%j==0) 
			break;
	if(j>=i)//避免重复赋值,如果没有这个条件,则i=5时,j=2,3,4,5都有a[k++]=i;
		a[k++]=i; //将求出的素数放入数组a中
}
return k; //返回所求出的素数的个数
}

运行结果如下:
在这里插入图片描述
在这里插入图片描述

4. 求绝对素数

编写一个程序,找出100以内所有绝对素数。

绝对素数是指本身是素数,其逆序数也是素数的数,如13,17,10321等
逆序数至少要有两位,所以绝对素数是两位数以上的数

代码实现如下:

#include<stdio.h>

int isPrimeNumber(int n);//声明函数

void main()
{
	int i,t,flag_i,flag_t;
	for(i=10;i<100;i++)//遍历100以内可能出现的绝对素数
	{		
		t=i%10*10+i/10;//逆序数
		flag_i=isPrimeNumber(i);//判断正序数是否为素数
		flag_t=isPrimeNumber(t);//判断逆序数是否为素数
		if(flag_i==1 && flag_t==1)//如果正序、逆序都是素数,那就是绝对素数
			printf("%d ",i);
	}
	printf("\n");
}

int isPrimeNumber(int n)//定义函数,判断一个数是否为素数
{
	int i,flag=1;//flag=1是素数
	for(i=2;i<n;i++)
		if(n%i==0)
			flag=0;//flag=0不是素数
	return flag;
}

运行结果如下:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84889.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!