题目
依次打印出1~100,遇到素数折行
解题思路
循环一定的数值范围
调判断函数
源码
#include<stdio.h>
#include<math.h>
#define MAX 100
#define MIN 1
#define TRUE 1
#define FALSE 0
typedef int STATE;
STATE isPrimeNum2(int num);
int main()
{
int num;
for (num = MIN; num <= MAX; num++)
{
if (isPrimeNum2(num))
printf("%d\n", num);
else
printf("%d ", num);
}
printf("\n");
return 0;
}
STATE isPrimeNum1(int num)
{
int i;
if (num == 1)
return FALSE;
for (i = 2; i < num; i++)
{
if (num%i == 0)
return FALSE;
}
return TRUE;
}
STATE isPrimeNum2(int num)
{
int i, j;
if (num == 1)
return FALSE;
j = (int)sqrt((double)num);
for (i = 2; i <= j; i++)
{
if (num%i == 0)
return FALSE;
}
return TRUE;
}
执行结果
总结
前两天看别人的代码,用define和typedef,见名知意。不知道合适不。好久不敲,好多东西能理解意思,但是自己实现的时候十分困难。再补坑吧!
0.0