输入一个正整数n,判断n是否是素数。

2024-11-27 14:28:28
推荐回答(5个)
回答1:

#include

#include

int zshu(int x)//判断x是不是素数。zshu代表素数,即质数。 

{

int i;

i=2;

if(x==2)//x是素数 。

return 1;

else if(x==1)//x不是素数 。

return 0;

else

{

while(i

{

if(x%i==0)

{

break;

return 0;//x不是素数 。 

}

i++;

if(i>=x)

return 1;//x是素数 。   

}

}

int main()//主函数。 

{

int N;//N一个正整数N。 

scanf("%d",&N);

int a[1000];//定义数组,便于储存N个数。 

int j;

for(j=0;j

scanf("%d",&a[j]);

for(j=0;j

{

if(zshu(a[j])==1)

printf("Yes\n");//是素数。 

if(zshu(a[j])==0)

printf("No\n");//不是素数。 

}   

}

扩展资料:

scanf()函数用法:

输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加&。

scanf("%s",s);改为scanf("%s",&s);

scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);

格式控制字符串包含:格式控制说明,普通字符。

1、格式控制字符串表示输入的格式,(int型用%d,float用%f,double型用%lf)

2、普通字符:在输出数据的时候,按照原样输出的字符,如:"fahr=%d,celsius=%d\n"中的fahr=,celsius=。

3、输入的参数是变量的地址,所以要在变量前面加&。

回答2:

#include
int main()
{
int i,j,n;
n=scanf("%d",&i);
while( n != 0)//只要不输入0,就一直循环
{
for(j=2;j<=n/2;j++)
{
if(n%j==0) break;
if(j>n/2) printf("%d是素数",n);
else printf("%d不是素数",n);
n=scanf("%d",&i);
}
这是c语言的,估计你才开始学编程吧?

回答3:

#include
#include
using namespace std;
int main()
{
int m,n,k;
cout<<"请输入一个数:";
cin>>m;
k=sqrt(m);
for(n=2;n if(m%n==0) break;
if(m<=k)
cout<<"No\n";
else
cout<<"Yes\n";
return 0;
}

回答4:

var n,j:longint;
f:boolean;
begin
readln(n);
j:=2;f:=true;
while (j<=trunc(sqrt(n)))and f do
if n mod j=0 then f:=false
else inc(j);
if f then writeln('yes') else writeln('false');
readln;
end.

回答5:

#include
int main(void)
{
int i,n,a=0;
scanf("%d",&n);
for(i=2;i{
if(n%i==0)
a=1;
}
if(a==0)
printf("Yes\n");
else
printf("No\n");
return 0;
}