#include <stdio.h>
#include <math.h>
int isPrime(int n);
int main()
{
int n,i,p,q;
scanf("%d",&n);
for(i = 2;i <= n/2;i++){
if(isPrime(i)&&isPrime(n-i)){
printf("%d = %d + %d",n,i,n-i);
break;
}
}
return 0;
}
int isPrime(int n)
{
int i,div;
for(div = 2;div <= sqrt(n);div++){
if(n%div == 0){
break;
return 0;
}
if(div == n)
return 1;
}
}

uj5u.com熱心網友回復:
結果不一樣,說明你代碼有歧義,必須修改。。。uj5u.com熱心網友回復:
樓主素數判斷函式有問題修改如下,供參考:
int isPrime( int n)
{
for(int div = 2;div <= sqrt(n);div++)
if( n%div == 0)
return 0 ;
return 1 ;
}
uj5u.com熱心網友回復:
上面漏了對1排除,重新修改:int isPrime( int n)
{
if(n<2) return 0;
for(int div = 2;div <= sqrt(n);div++)
if( n%div == 0)
return 0 ;
return 1 ;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/229587.html
標籤:C語言
