#include /* I/O庫函數原型聲明*/
#包括
#ifdef MONITOR51 /*是否需要使用Monitor-51進行調試(條件編譯,MONITOR51是條件,如果是1就運行,否則不運行)*/
char代碼保留[3]_ at _ 0x 23;/*如果是,留下空格* * *串口不使用*/
#endif /*停止執行*/
Void main (void) //任何足夠大的偶數都可以用兩個素數的和來表示。
{
int j,n,p,q,flagp,flagq
/* -
將串行端口的數據傳輸速率設置為1200 bit/s,並將晶振頻率設置為16MHz。
- */
#ifndef MONITOR51
SCON = 0x 50;/* SCON:模式1,8位異步串行通信*/
TMOD | = 0x 20;/* TMOD:定時器1,模式2,8位自動加載模式*/
th 1 = 221;/* th 1的加載值:1200bit/s @ 16MHz */
tr 1 = 1;/* TR1:定時器1運行*/
TI = 1;/* TI:設置為1發送第壹個字節*/
#endif
/* -
註意:因為沒有操作系統接受主函數的返回值,所以
對於嵌入式系統,main函數永遠不會退出。會的
必須有壹個循環來確保程序不會被禁止。
- */
printf("請輸入n:");
scanf("%d ",& ampn);
if (((n%2)!= 0)| |(n & lt;=4))
printf("輸入數據錯誤!\ n ");
其他
{
p = 1;
做{
p = p+1;
q = n-p;
flagp = 1;
for(j = 2;j & lt=(int)(floor(sqrt((double)(p))));j++)
{
如果((p%j)==0)
{
flagp = 0;
打破;
}
}
flagq = 1;
for(j = 2;j & lt=(int)(floor(sqrt((double)(q))));j++)
{
如果((q%j)==0)
{
flagq = 0;
打破;
}
}
} while(flagp * flagq = = 0);
printf("%d = %d + %d \n ",n,p,q);
}
while(1){ };
}