輸出一個數的各個位數、求某個數以內素數

1, 輸出一個數的各個位數code

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

2,求某個數以內素數input

<!-- 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)        //再篩選剔除三、五、七、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);
       }
    }
相關文章
相關標籤/搜索