C语言基础:如何判断素数(质数)与合数
1. 素数与合数
- 素数又叫质数(prime number),有无限个。素数定义为在大于1的自然数中,除了1和它本身两个正因数以外不再有其他因数。如:2,3,5,7,11等皆为素数。
- 比1大而且不是素数的数称为合数(composite number)。如:4,6,8,9,10等皆为合数。
- 数字0和1既非素数也非合数。
2. 正因数与公约数
- 正因数,也称为正约数,指的是一个整数中大于0的因数。如:24的正因数有1,2,3,4,6,8,12,24。
- 任何整数的最小正因数都是1。
- 公因数,也称为公约数。它是指能同时整除几个整数的数。如:24与16的公约数有1,2,4,8,以及它们的最大公约数为8。
- 对任意的若干个正整数,1总是它们的公因数。
注:最大公约数请见此文章C语言基础:求两个数的最大公约数与最小公倍数
3. 代码示例
- 例1: 输出一个数判断是否为素数。
int main(int argc, char* argv[])
{
int x;
printf("please input a number!\n");
scanf("%d",&x);
if(x<=1){
printf("This is not heshu nor sushu\n");//数字0和1既非素数也非合数。
}
else{
for(int i=2;i<x;i++){
if(x%i == 0)break;//试除法
}
if(i<x){
printf("This is heshu\n");//合数,非素数
}
else{
printf("This is sushu\n");//素数
}
}
return 0;
}
测试用例:
97
运行结果:
This is sushu
- 例2: 输出数字1到100之间的素数。
void main(){
for(int x=2;x<=100;x++){//数字1既非素数也非合数。
for(int i=2;i<x;i++)
if(x%i==0)break;
if(i>=x)printf("%d ",x);
}
printf("\n");
}
运行结果:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
——>以上内容是关于如何用C语言如何判断素数(质数)与合数,希望对初学者或再次学习者有所帮助,基础打扎实,不怕风吹雨打! 如果以上内容有错误或者内容不全,望大家提出!我也会继续写好每一篇博文!
待续未完
——文优
欢迎观看和提问!!