遇到一个C语言问题。输入一个整数,判断其是否为素数。

输入一个整数,判断其是否是素数,若是则输出1,否则输出0.请填空。
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、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

参考资料:

百度百科-c语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
#include "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);
}

如果回答满意别忘了选最佳答案~本回答被提问者和网友采纳
第2个回答  2019-11-25
#include
"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);
}
如果回答满意别忘了选最佳答案~
第3个回答  2012-07-09
你可以填个根号x后取整的数 ,这样可以减少循环次数。还可以再用个I++,因为偶数肯定不是质数(除了2)。
第4个回答  2012-07-09
#include <stdio.h>
#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);
}
相似回答