//打印100以内的素数
int main(){
int i,j;
bool flag; //标志元素flag
for(i=2;i<=100;i++){
flag=true;
for(j=i/2;j>=2;j--){ //用2到i/2之间的每个整数去除i
if(i%j==0)
flag=false;
}
if(flag)
printf("%5d\n",i);
}
return 0;
}
一种错误的方法,会全部打印:
int main (){
int i,j;
bool flag;
for(i=2;i<=100;i++){
for(j=i/2;j>=2;j--){
if(i%j==0)
flag=false;
flag=true;
}
if(flag)
printf("%-5d",i);
}
printf("\n");
return 0;
}
用函数方法重写:
//函数重写 打印100以内素数
bool prime(int n){
int j;
for(j=n/2;j>=2;j--)
if(n%j==0) return false;
return true;
}
int main (){
int i;
for(i=2;i<=100;i++)
if(prime(i))
printf("%-5d",i);
return 0;
}