/*************************************************************************************
功能:输出素数的二进制
说明:递归求出二进制
作者:nicehuai
日期:2015/2/1
************************************************************************************/
#include<stdio.h>
#define YES 1
#define NO 0
#define MAX 600 //测试最大值
void fuction(int n); //输出n的二进制
bool is_prime(int n ); //判断n是否是素数,是:YES,否:NO
int i;
int main()
{
int n;
n = 0;
while(++n)
{ //判断n是否是素数,是:YES,否:NO
if( n > MAX )
break;
i = 0;
if(is_prime(n) == YES )
{
printf("%d:",n);
fuction(n);
printf("\n");
}
}
return 0;
}
void fuction( int n) //输出n的二进制
{
int t = n/2;
if( t!=0 )
{
fuction(t);
}
printf("%d",n%2);
i++;
if(i % 4 == 0)
printf(" ");
}
bool is_prime(int n) //判断n是否是素数,是:YES,否:NO
{
int i = 0;
if(n == 1 || n == 2)
return YES;
else //判断n是否是素数,是:YES,否:NO
{
for( i = 2; i*i <= n;i++)
{
if(n % i == 0)
return NO;
}
}
return YES;
}
输出素数的二进制
最新推荐文章于 2023-10-10 12:46:05 发布