关于c语言2-100素数的输出
答案:2 悬赏:40 手机版
解决时间 2021-03-12 06:28
- 提问者网友:寂寞梧桐
- 2021-03-11 19:51
#include
int pansushu(int i);
int main()
{
int i=25;
printf("2 is a prime\n");
//for(i=3;i<101;i++)
//{
pansushu(i);
if(pansushu(i)==0)
{
printf("%d is not a prime\n",i);
}
if(pansushu(i)==1)
{
printf("%d is a prime\n",i);
}
//}
return 0;
}
int pansushu(int i)
{
int a,flag;
for(a=2;a {
if(i%a==0)
{
printf("%d",i%a);
flag=0;
break;
}
else
{
printf("%d",i%a);
flag=1;
break;
}
}
return flag;
}
为什么这个程序会在后面多出一个0,然后printf输出那么少东西,还有为什么25在这个程序中是素数?
最佳答案
- 五星知识达人网友:西岸风
- 2021-03-11 20:39
#include
int pansushu(int i);
int main()
{
int i=25;
printf("2 is a prime\n");
//for(i=3;i<101;i++)
//{
//pansushu(i);
if(pansushu(i)==0)
{
printf("%d is not a prime\n",i);
}
else
{
printf("%d is a prime\n",i);
}
//}
return 0;
}
int pansushu(int i)
{
int a,flag=1; //给个初值1
for(a=2;a
{
if(i%a==0)
{
//printf("%d",i%a);
flag=0; //有因数置为0,结束
break;
}
}
//要全检查完,不能检查一个不是,就置为1
return flag; //返回相应的标志
}
全部回答
- 1楼网友:上分大魔王
- 2021-03-11 21:49
错误很多,比如定义语句下面的a[i]=i;i的值都不确定,赋值语句没意义。
line==0;也没意义,建议好好看书本,模仿书本敲程序。
==============刚写的,在数组中通过下标保存素数,简洁明了=========================
#include<stdio.h>
#include<string.h>
void main()
{
int a[105],i,j,tot;
memset(a,0,sizeof(a));
for(i=2;i<=100;i++)
for(j=i+i;j<=100;j+=i)
a[j]=1;
for(i=2;i<=100;i++)
if(a[i]!=1)
{
printf("%5d ",i);tot++;
if(tot%5==0)
printf("\n");
}
}
================又帮你写了个===================================
================这个是通过函数调用判断素数的,没换行,那个你可以自己弄================
#include<stdio.h>
#include<math.h>
int prime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0) return 0;
return 1;
}
void main()
{
int n,i;
for(i=2;i<=100;i++)
if(prime(i)==1) printf("%5d",i);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯