猜素数题4-2 定义与调用函数

题目描述
定义一个函数,用该函数对给定的int型整数n,判断其是否为素数。注意:0,1以及负数 均不属于素数。

输入
多组数据。每组数据为一行,包含一个整数n,保证n 在int范围内。

输出
对于每组数据,若n 是素数输出yes,否则输出no。

输入样例
23
9
1
输出样例
yes
no
no

如何结束程序?

#include <stdio.h>
#include <stdlib.h>
int isprime(int n)
{
int i;
if(n<=1)return 0;
for(i =2;i<n;i++)
{
if(n%i==0) return 0;
}
return 1;
}
int main()
{
int n,i,*a;
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
if(isprime(a[i])) printf("yes\n");
else printf("no\n");
}
return 0;
}


#include <stdio.h>
int isprime(int n)
{
    if(n<=1)
        return 0;
    for(int i=2;i*i<=n;i++)
        if(n%i==0)
            return 0;
    return 1;
}
int main()
{
      int n,count=0;
      int a[1000];
      while(scanf("%d",&n) !=EOF)
          a[count++] = n;
      for(n=0;n<count;n++)
      {
           if(isprime(a[n]))
                  printf("yes\n");
           printf("no\n");
      }
      return 0;
}

供参考:

#include<stdio.h>
#include<math.h>
int main()
{
    int i,n,flg;
    while(scanf("%d",&n)==1)
    {
        if(n <= 0)//n<=0 时,结束输入
            break;
        else
        {
          flg=0;
          for(i=2;i*i <= n;i++)
          {
             if(n%i==0)
             {
                flg = 1;
                break;
             }
          }
          if(flg==1 || n==1)
             printf("No\n");
          else
             printf("Yes\n");
        }
    }
    
    return 0;
}