c语言如何判断是否为质数
C语言编程:判断某数是否是质数
#include遇到一个C语言问题。输入一个整数,判断其是否为素数。
x/2
程序分析:
1.素数被定义为大于1的自然数,除了1和它本身之外没有因数。
2.nn可以被mm整除,所以m≤n2m≤n2,所以我们只需要穷举m∈[2,n2]m∈[2,n2]即可。
在nn的情况下,n是质数。
如果mm可以加到m=n2m=n2,则n不是素数。
#include"stdio.h"
voidmain()
{
inti,x,y=1;
scanf("%d",&x);
for(i=2;i<=x/2;i++)
if(y==0)中断;
printf("%d\n",y);
}
执行后输入100,输出1。
扩展信息:
C语言需要说明:
1可以编写C语言的源程序其中一个或多个由源文件组成。
2.每个源文件可以由一个或多个函数组成。
3.一个源程序无论由多少个文件组成,都有且只有一个主函数,即main函数。
是整个程序的入口。
4.源程序可能具有预处理命令(包括include、ifdef、ifndef和Define命令)。
预处理命令通常应放在源文件或源程序的开头。
5.每个描述和每个语句都必须以分号结尾。
但是,在预处理命令、函数头和“}”大括号之后不能添加分号。
添加”;”在结构体、联合体和枚举声明中的“}”之后。
6.标识符和关键字必须至少用一个空格分隔。
如果有明显的分隔符,则不能再添加空格来分隔它们。
参考资料:
百度语言百科-c
c语言编程判断一个数是否为质数
我的逻辑判断有问题。if(a%n==0){//这说明已经存在一个可整除的数,并且不是素数,所以我们可以使用break直接跳转到它。
}else{//假设;如果a是9,那么9%2肯定不是0。
啊,所以9不是质数?}改成for(n=2;n=a){//ifa如果a是素数,则意味着我们没有使用break跳出循环,循环结束时n的值是一个能被a整除的数字。
可以判定不存在。
printf(“是”);}
C语言输入一个整数,判断是否是质数?
#include
intmain()//主函数
{
intnumber,i;//变量定义printf("请输入随机数:");//提示语句
scanf("%d",&number);//输入要输入的数字
for(i=2;i<=number-1;i++)//条带从2开始,到该数字的第一个数字结束
{
if(number%i==0)//如果其余都生效,则0
被中断;
{
printf("%d不是质数",number);
}
else
{
printf("%d第一个数字",number);
}
return0;//函数返回值为0
}