题目:实现一个函数,判断一个数是不是素数(用C语言)
思路:
定义一个int 型数,使它依次递增整除所判断的数,如果余数等于0则不是素数,否则是素数。由for()语句配合if()语句不难写出。
以下代码总共定义三个函数,可以随便调用哪个函数【仅供参考】
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void Sushu(int num, int m)
{
//为为什么条件是 m <sqrt(num)?
//如果小于sqtr(num)都不满足,就没必要比下去了;
for (num; m < sqrt(num); m++)
{
if (num%m == 0)
{
printf("%d is sushu!", num);
break;
}
else
{
printf("%d is not sushu!", num);
break;
}
}
}
int sushu(int num)
{
int a = 1;
int i = 0;
for (i = 2; i < num; i++)
{
if (num%i == 0)
{
a--;
break;
}
}
return a;
}
int Su_Shu(int num)
{
for(int i = 2; i < num; i++)
{
if (num%i == 0)
{
printf("该数不是素数!");
break;
}
else
{
printf("该数是素数!");
break;
}
}
}
int main()
{
int num = 0;
scanf("%d", &num);
//Sushu(num, m);
Su_Shu(num);
//if (sushu(num))
//{
// printf("yes");
//}
//else
//{
// printf("no");
//}
system("pause");
return 0;
注意事项:
当判断if(num%i==0 )和 else() ,一定要加上break语句跳出循环。