在写c语言题目的时候,会遇到一些问题,道理我都懂,但是一写就废。
在这里,统计一些常见的问题,给大家分享一下!!!
文章目录
关于素数问题
素数:除了1和本身,没用其他任何一个整除的数。
例如:7只能整除1和7;11只能整除1和11。9可以整除1 3 9。
上面三个数,7,11和9,由于7和11只能整除1和它本身,所以7和11是素数,但是9就不可以,因为9还可以整除3。
在了解,素数的概念之后,再来看一下如何在代码中去判断一个数是不是素数。
这里假设要验证的数是n。
要求:请编写一个程序,判断n是不是素数。
思路:使用循环,遍历2——n-1(因为1和n可以被整除),遍历过程中,判断有没有可以被n整除的数,如果有,说明n不是一个素数,否则,n就是一个素数。
代码实现(加注释):
#include <stdio.h>
//函数的功能是判断一个数是不是素数
int isPrime(int n)
{
int i =0;
for(i=2;i<n;i++)
{
//从2开始循环,一直到n-1
if(n %i ==0)//在范围内寻找可以被整除的数
{
break;//如果可以被整除,跳出循环
}
}
//循环结束,如果i=n,说明循环执行过程中,没用找到其他可以被整除的数
if(i == n)
{
return 1;
}
else
{
//i!=n,说明循环里的条件
return 0;
}
}
int main()
{
int n = 0;
scanf("%d",&n);
if(isPrime(n))
{
printf("%d是一个素数\n",n);
}
else
{
printf("%d不是一个素数\n",n);
}
}
总结:使用循环遍历2—n-1的数,然后去判断这些数中,有没有可以被整除的数字,如果存在说明这个数不是素数,否则这个数就是一个素数。 归根到底,是根据素数的定义写出代码。