高手们,都来看看啦
											一道题目:对已知的自然数n,设计一个判断是否为素数的函数,并调用该函数实现将100-200区间的偶数分解为两个素数和的形式。谢谢										
					
	
程序代码:#include<math.h>
unsigned int m_stack[200];
int m_stack_tal = 0;
struct number{
    unsigned int m_left_value;
    unsigned int m_right_value;
};
struct bruker{
    number m_number_value[20];
    unsigned int m_number_tab;
};
bruker m_bruker[100];
bool _primeJudge(unsigned int m_i){
    if(m_i<4){
        if(m_i==1)
            return 0;
        return 1;
    }
    else{
        if(m_i%2==0)
            return 0;
        else{
            int j = sqrt((double)m_i);
            for(int i=3;i<=j;i+=2){
                if(m_i%i==0)
                    return 0;
            }
            return 1;
        }
    }
}
int main()
{
    for(int i=2;i<=200;i++){
        if(_primeJudge(i)){
            m_stack[m_stack_tal++] = i;
            printf("%d是素数",i);
        }
    }
    int sum;
    for(int i=1;i<m_stack_tal;i++){
        for(int j=m_stack_tal-1;j>=i;j--){
            sum = m_stack[i] + m_stack[j];
            if(sum>200)
                continue;
            else if(sum<100)
                break;
            else{
                int x = sum-101;
                int y = m_bruker[x].m_number_tab;
                m_bruker[x].m_number_value[y].m_left_value = m_stack[i];
                m_bruker[x].m_number_value[y].m_right_value = m_stack[j];
                m_bruker[x].m_number_tab++;
            }
        }
    }
    for(int i=0;i<100;i++){
        if(m_bruker[i].m_number_tab==0)
            printf("%d该值不能分解为2个素数的和\n",i+101);
        for(int j=m_bruker[i].m_number_tab-1;j>=0;j--){
            printf("%d 该值可分解为 %d + %d  (%d)\n",i+101,m_bruker[i].m_number_value[j].m_left_value,m_bruker[i].m_number_value[j].m_right_value,j);
        }
    }
    return 0;
}


											
	    

	


