C语言实战:逻辑的挑战-一篇文章告诉你-什么是质数&如何判读质数。
质数:又称素数,指大于一的自然数,除了1和其本身以外,无法被其他自然数整除(也可以定义为只有1和它本身两个约数的数)
20以内的质数有:2 3 5 7 11 13 17 19
计算机如果要判断a是否是质数,需要用a除以2,除以3......一直除到a-1;
如果从2到a-1中的所有整数都不能被a整除,即找不到除了1和a本身以外的任何约数,那么说明a为质数,否则为合数。
例如:判断2023是否为质数:需要分别用2023除以2,3,5......直到除以2022,如果都不能被整除,即都不是2023的倍数,那么说明2023是质数,否则为合数。
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
int main()
{
int a, i,count=0;
printf("请输入一个数:");
scanf("%d", &a);
for (i = 2; i <= a - 1; i++)
{
if (a % i == 0)
{
count++;
printf("%d ", i);//打印出所有约数
}
}
if (count == 0)
printf("\n该数是质数\n");
else
printf("\n该数是合数\n");
printf("%d\n", count);
return 0;
}
示例: