编程求出1~599中至少有一位数字为3的所有素数,存入一维数组,打印满足条件的 素数?

2024-12-23 14:50:22
推荐回答(1个)
回答1:

#include
//判断一个数中是否含有3
int isIncludeThree(int num){
int count=0,temp;
while(num!=0){
temp=num%10;
if(temp==3){
count++;
}
num/=10;
}
return count>=1?1:0;
}
//判断含有3的数中,是否是素数
int isSuShu(int num){
int i,count=0;
if(isIncludeThree(num)==1&&num>1){
for(i=1;i<=num;i++){
if(num%i==0){
count++;
}
}
}
return count<=2&&num>1&&count>0?1:0;
}
void main(){
int i,count=0,index=0,num[599];
//找出1到599之间含有3的素数,并将这些数字存放在数组num中
for(i=1;i<=599;i++){
if(isSuShu(i)==1){
num[index]=i;
index++;
}
}
printf("1到599之间含有3的素数有:\n");
for(i=0;i<599;i++){
if(num[i]>0){ //这个判断是去掉数组中的默认值,int类型的默认值是0
count++;
if(count%6==0){ //换行打印,1到599之间含有3的素数有48个,故使用6个一换行,也可以使用其它能被48整除的数
printf("%d\n",num[i]);
}else{
printf("%d,",num[i]);}
}
}
}