1106 質數檢測
基準時間限制:1 秒 空間限制:131072 kb 分值: 0 難度:基礎題
收藏關注給出n個正整數,檢測每個數是否為質數。如果是,輸出"yes",否則輸出"no"。
input
第1行:乙個數n,表示正整數的數量。(1 <= n <= 1000)output第2 - n + 1行:每行1個數(2 <= s[i] <= 10^9)
輸出共n行,每行為 yes 或 no。input示例
523456output示例
yes素數測試,此處提供兩種**yesno
yesno
1、素數測試:
#include#includeint modularexponent(int a, int b, int n)
} return ret;
}bool millerrabin(int n,int a)
int r = 0, s = n - 1, j;
if(!(n%a)) return false;
while(!(s&1))
long long k = modularexponent(a, s, n);
if(k == 1) return true;
for(j = 0; j < r; j++, k = k * k % n)
if(k == n - 1) return true;
return false;
}bool miller_rabin(int n)//
,i;//能通過測試的最小素數為 3215031751(此數超int)
for(i=0;i<4;i++)
return true;
}int main()
return 0;
}
2、大神**
#include #include #define maxp 31627
char flag[maxp+1];
int prime[4000];
int count = 0;
void init_ptbl()
for( i = 3; i <= maxp; i += 2 ) if( flag[i] == 0 ) prime[count++] = i;
}int main()
e = (int)sqrt( x ) + 1;
for( i = 1; prime[i] <= e; ++i ) if( x % prime[i] == 0 ) break;
puts( prime[i] <= e ? "no" : "yes" );
} return 0;
}
51nod 1106 質數檢測
傳送門 1106 質數檢測 根據質數的定義,在判斷乙個數n是否是質數時,我們只要用1至n 1去除n,看看能否整除即可。但我們有更好的辦法。先找乙個數m,使m的平方大於n,再用 m的質數去除n n即為被除數 如果都不能整除,則n必然是質數。如我們要判斷1993是不是質數,50 50 1993,那麼我們...
51Nod 1106 質數檢測
1106 質數檢測 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 收藏 關注 給出n個正整數,檢測每個數是否為質數。如果是,輸出 yes 否則輸出 no input 第1行 乙個數n,表示正整數的數量。1 n 1000 第2 n 1行 每行1個數 2 s i 10 9 ...
51nod 1106 質數檢測
給出n個正整數,檢測每個數是否為質數。如果是,輸出 yes 否則輸出 no input第1行 乙個數n,表示正整數的數量。1 n 1000 第2 n 1行 每行1個數 2 sii 10 9 output輸出共n行,每行為 yes 或 no。sample input 523 456sample out...