遇到一个C语言问题。输入一个整数,判断其是否为素数。
mian()
{ int i,x,y=1;
scanf("%d",&x);
for(i=2;i<=______;i++)
if { y=0;break;}
printf("%d\n",y);
}
程序是看懂了,就是不知道横线里该填什么,希望大家帮帮我。最重要的是答案怎么得出来的。 展开
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"
void main()
{
int i,x,y=1;
scanf("%d",&x);
for(i=2;i<=x/2;i++)
if ( y==0)break;
printf("%d\n",y);
}
输入100,运行后输出1。
扩展资料:
C语言需要说明的是:
1、一个C语言源程序可以由一个或多个源文件组成。
2、每个源文件可由一个或多个函数组成。
3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。
4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。
5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”。
6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
参考资料:
#include "iostream"
int main()
{
int i,x,y=1;
scanf("%d",&x);
for(i=2;i<=x/2;i++)//i从2到x/2,将x除以i,如果能整除,说明x不是素数,如果都不能整除,x为素数
if(x%i == 0)//当i大于x/2时,设t,使i*t=x,可得t<2,也就是说将不存在i,使x能整除i得整数t(1除外)
{
y=0;
break;
}
printf("%d\n",y);
}
如果回答满意别忘了选最佳答案~
"stdio.h"
#include
"iostream"
int
main()
{
int
i,x,y=1;
scanf("%d",&x);
for(i=2;i<=x/2;i++)//i从2到x/2,将x除以i,如果能整除,说明x不是素数,如果都不能整除,x为素数
if(x%i
==
0)//当i大于x/2时,设t,使i*t=x,可得t<2,也就是说将不存在i,使x能整除i得整数t(1除外)
{
y=0;
break;
}
printf("%d\n",y);
}
如果回答满意别忘了选最佳答案~
#include <math.h>
void mian()
{ int i,x,y=1;
scanf("%d",&x);
for(i=2;i<=sqrt(x);i++)
if { y=0;break;}
printf("%d\n",y);
}