问题描述
输入一个整数(大于等于4 小于等于100),输出小于此数的所有非素数
标准输入:
17
标准输出:
4 6 8 9 10 12 14 15 16
解题思路
就是一个判断素数的问题,注意输出的是非素数
判断素数的方法就是用它本身÷3到根号它自己,如果都不能整除,则是素数
解题代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int judge(int a){ //判断是素数 返回1,非素数 返回0
int i;
if(a % 2 == 0) return 0;
for(i = 3; i <= sqrt(a); i++)
if(a % i == 0) return 0;
return 1;
}
int main(){
int i,a;
scanf("%d",&a);
for(i = 4; i < a; i++)
if(!judge(i))
printf("%d ",i);
printf("\n");
}