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

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;
}

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

猜你喜欢

转载自blog.csdn.net/aidijava/article/details/123607899