题目描述
定义一个函数,用该函数对给定的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;
}