int isPrime(int n) // 該函數用來判斷質數,是質數返回1,否則,返回0
{
int i;
for(i = 2; i < n && n%i; i++)
;
return i >= n;
}
void fun(int *value)
{
int i; // value數組下標
int n; // value數組待判斷數據個數
int t; // 將數字分解得到的壹個因子
n = value[0];
for(i = 1; i <=n; i++)
{
int v = value[i];
int m;
int isDP = 0;
isDP = 0;
for(m = 2; !isDP && m <= v/2; m++)
{
if(v%m == 0 && m != v/m && isPrime(m) && isPrime(v/m))
isDP = 1;
}
if(isDP)
printf("YES\n");
else
printf("NO\n”);
}
}
上面的程序段時間復雜度是不好的,對於大數會執行很長時間,但是,結構是最簡單的。請斟酌。