用c语言编写一程序,要求输出2-999之间所有素数,并每行打印五个素数后换行,且保证数据右对齐

如题所述

#include<stdio.h>
#include<math.h>

bool is_prime(int tar){//判断是否为素数
int i = 2;
while(i <= sqrt(float(tar))){
if(tar % i == 0)
return false;
i++;
}
return true;
}
int main(){
int count = 0;
for(int i = 2; i<999;i++){
if(is_prime(i)){
printf("%3d ", i);//因为2-999,最多三位,所以用3就足够了
count ++;
if((count)%5 == 0){
printf("\n");
}
}
}
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-07
//December 08,2014 By 12052010  测试已通过
#include<stdio.h> 
#include <math.h>

bool judge(int num){

for(int i=2;i<=sqrt(num);i++)
if(num%i==0) 
return false;
return true;

}

int main(){
int total=0;
int num;
for(num=2;num<=999;num++){
if(judge(num)){
if(total++%5==0 ) printf("\n");
printf("%5d",num) ;
}
}
return 0;
}

追问

total++%5是先取余还是先total加1?

追答

谢谢采纳,不好意思,刚看见,先取余,后加1

追问

哦(⊙o⊙)哦,明白了,谢谢

本回答被提问者和网友采纳
相似回答