C语言题目求教 定义一个函数,判断指定的数是否为素数。是素数返回整数1,不是则返回0。 输入数据有

C语言题目求教
定义一个函数,判断指定的数是否为素数。是素数返回整数1,不是则返回0。
输入数据有多组,每组占一行,仅包含一个大于1的正整数。
输出:每组输出结果占一行,是素数输出Yes,否则输出No
样例输入
15
23
101
样例输出
No
Yes
Yes

#include<stdio.h>
#include<math.h>
void main()
{
int m,i,k;
printf("请输入一个整数:");
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>k)
printf("%d 是素数。\n",m);
else
printf("%d 不是素数。\n",m);
}追问

您这个没有自己编写函数啊!

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-05-22
#include <stdio.h>
#include <string>
int sushu(int x)
{
int i;
if (x<=1)return 0;
for(i=2;i*i<=x;i++)
if(x%i==0) return 0;
return 1;
}
int main(){
char s[30];
int num[30]; //预存输入的数据
int count=0,i=0;
while(1){
gets(s);
if (strlen(s)==0) break;
sscanf(s,"%d",&num[count++]);
}
for(i=0;i<count;i++)
if (sushu(num[i]))
printf("Yes\n");
else
printf("No\n");
return 0;
}追问

能不用字符串吗?

追答

如果你能事先知道输入的数据个数,可以不用。

追问

他这个怎么能回车不出数啊

编译有错误

追答

把那个
#include
改为
#include 试试吧

追问

一样的问题

还是编译错误

都指在char s 那

本回答被网友采纳
第2个回答  2015-05-06
yes
相似回答