1459.cpp

来自「这是哈尔滨工业大学acmOJ的源代码」· C++ 代码 · 共 53 行

CPP
53
字号
/*  This Code is Submitted by wywcgs for Problem 1459 on 2005-03-19 at 00:03:38 */ 
#include <stdio.h>
#include <math.h>

int TextPrime(long number2);
long MakePrime(long prime1, long Number);

int main()
{
	long Number, Prime;

	while(scanf("%ld", &Number) == 1){
	    if(Number == 0){
	        return 0;
	    }else{
            Prime = 3;
            while(!TextPrime(Number - Prime) && Prime != 0){
                Prime = MakePrime(Prime, Number);
            }
            if(Prime != 0){
                printf("%ld = %ld + %ld\n", Number, Prime, (Number - Prime));
            }else{
                printf("You made a history!\n");
            }
        }
    }
    
    return 0;
}            	   

int TextPrime(long number2)
{
	long i = 3;
	int sign = 1;
	
	while(i <= sqrt(number2) && sign == 1){
		if(number2 % i == 0)
			sign = 0;
		else
			i += 2;
	}
	return sign;
}
long MakePrime(long prime1, long Number)
{
	do{
		prime1 += 2;
	}while(!TextPrime(prime1) && prime1 < Number);
	if(prime1 < Number)
		return prime1;
	else
		return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?