函數頭

#include<stdio.h>
#include<stdlib.h> 
#include<math.h> 
#define _CRT_SECURE_NO_WARNINGS

int prime[300]={2};

int bsearch1(int low,int high,int target)//二分查找 
{
    if(low > high) return -1;
    int mid = low + (high - low)/2;
    if(num[mid] > target){
        return bsearch1(low,mid-1,target);
    }
    if(num[mid] < target){
        return bsearch1(mid+1,high,target);
    }
    return mid;
}

int max(int a,int b)
	{
		if(a>=b)
			return a;
		else
			return b;
	 } 
	 
int min(int a,int b)
	{
		if (a>=b)
			return b;
		else
			return a;
	}
	
int clgs(int year,int month,int day)//蔡勒公式 
  {
    int y, c, m, d, w;
    y = year % 100;//年 如2015 即年是15年
    c = year / 100;// 年份前兩位 如2015即20
    m = month;
	d = day;
    if (m == 1 || m == 2) { //判斷月份是否爲1或2
        y--;
        m += 12;//某年的1、2月要看作上一年的13、14月來計算
      }
    w = y + y / 4 + c / 4 - 2 * c + 13 * (m + 1) / 5 + d - 1;//蔡勒公式的公式
    while (w < 0) w += 7;//確保餘數爲正
    	w %= 7;
    return w;
 }
 
int comp(const void*a,const void*b)
{
    return *(int*)a-*(int*)b;
} 

void yxddsort(int a[],int n)//由小到大 數組排序 
{
	int i,j,min,index;
	for(i=0;i<n-1;i++){
		min=a[i],index=i;
	    for(j=i+1;j<n;j++)
	   		if(a[j]<min)
	    		min=a[j],index=j;
	    if(index!=i)
			a[index]=a[i],a[i]=min;
 }
}

void yddxsort(int a[],int n)//由大到小數組排序 
{
	int i,j,max,index;
	for(i=0;i<n-1;i++){
		max=a[i],index=i;
		for(j=i+1;j<n;j++)
			if(a[j]>max)
				max=a[j],index=j;
		if(index!=i)
			a[index]=a[i],a[i]=max;
 }
}

int gcd(int a,int b)//最大公約數 
{
	
	int r;
	
	if(b==0)
		return a;
	for (r=a%b;r!=0;r=a%b)
	{
		a=b;
		b=r;
 	}
 	return b<0?-b:b;
}

int zxgbs(int a,int b)//最小公倍數 
{  
 	return a*b/gcd(a,b);
}

void get_prime(int n)
{
	int i,j,m=1,is_prime,prime[100000];
	for(i=3;i<=n;i+=2){
		for(is_prime=1,j=0;pow(j,2)<=i;j++){
			if(i%j==0){
				is_prime=0;
				break;
			}
		}
		if(is_prime){
			prime[m++]=i;
		}
	}
}

int if_prime(int i)
{
	int j;
		for(j=2;pow(j,2)<=i;j++)
		{
			if(i%j==0)
				return 0;
		}
				return 1;
}

void print_prime(int n)
{
	int i,j,m=1,is_prime;
	for(i=3;i<=n;i+=2)
	{
		for(is_prime=1,j=0;prime[j]*prime[j]<=i;j++)
		{
			if(i%prime[j]==0)
			{
				is_prime=0;
				break;
			}
		}
		if(is_prime)
		{
			prime[m++]=i;
			printf("%d\n",i);
		}
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章