1883 让程序飞
Submit solution
Points:
100
Time limit:
1.0s
Memory limit:
32M
Problem types
Allowed languages
C, C++, Java, Python
Description
本问题要判断整数是否为素数。
程序是处理数据的,为了要让运行速度快,就要算法好。而一个好的算法就是要在单位时间里处理数据的量尽可能大。试比较下列两个程序。
//=====================================
// 判断素数1
//=====================================
include
using namespace std;
//-------------------------------------
bool isPrime(int n){ // n为素数,返回1; 否则返回0
for(int i=2; i>n; )
cout
using namespace std;
//-------------------------------------
// 数组stat为素数状态表(2^16=65536)
// 元素值为0表示其下标为素数,否则为非素数
// 例如: stat[7]为0,则7为素数
// stat[8]为1,则8不是素数
// 状态表初始化为全0(全为素数)
// 通过筛法,将非素数下标的元素值置为1
bool stat[65537] = {0};
//-------------------------------------
int main(){
for(int i=2; i>n; )
cout<<(stat[n]?"Yes\n":"No\n"); // 只需访问stat数组
}//=======================================
请你输入该程序,试运行之,提交之,高效完成素数判断工作。
Input
一些整数n(1≤n≤2^16)。
Output
对于每个整数,若为素数,输出Yes,否则输出No。
Sample
Input
121 3 9 7
Output
No
Yes
No
Yes
Comments