输出一个数的各个位数、求某个数之内素数

解析代码:数位输出与素数判断
本文深入探讨了使用C++实现的两个核心算法:一是输出一个数的各个位数,二是求解指定范围内的素数。通过实例代码,详细解释了算法原理与实现过程。

1, 输出一个数的各个位数

<!-- lang: cpp -->
   void print_every_num(long num){
while(num){
    cout<<num%10<<endl;
   num=num/10;
}

2,求某个数之内素数

<!-- lang: cpp -->
void isprime(long dig){              //判断某个数是否为素数
int i;
for(i=2;i<=dig/2;i++){               //或者<=sqrt(dig)
	if(dig%i==0){
		break;
	}
	if(i==dig/2){
		printf("%d\n",dig);
	}
 }
   }

<!-- lang: cpp -->
void print_prime(long num){
 int j;
 num>=2?printf("%d\n%d\n",2,3):printf("please input num>2! ");
 for(j=2;j<=num;j++){
	 isprime(j);
 }
  }

筛选法求素数

<!-- lang: cpp -->
void print_prime(long num){
static bool prime[1000]; //初始化为false
//memset(prime,false,sizeof(prime));
int j,i;
for(j=4;j<=num;j+=2){       //先剔除偶数
			prime[j]=true;
	}
for(i=3;i<=num/2;i+=2)        //再筛选剔除3、5、7、9......的倍数。
 for(j=i*2;j<=dig;j++){
		if(j%i==0){
			prime[j]=true;
		}
	}
for(i=0;i<=num;i++){         //遍历求出素数
      if(!prime[i]){
          printf("%d\t",i);
       }
    }

转载于:https://my.oschina.net/u/221120/blog/139467

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值