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