#include<stdioh>
int main()
{
int i=0;
int count=0;
for(i=0;i<=100;i++)
{
int j=0;
for(j=2;j<=i;j++)
{
if(i%j==0)
{
break;
}
}
if(i==j)
{
count++;
printf("%d ",i);
}
}
printf("\ncount=%d\n",count);
return 0;
}
解题思路:
素数,就是除了1和他本身,不能被其他数整除的数字。答案就是用100到200之间的每个数字,除以2到其本身前面的那一个数字,如果此过程中出现整除的现象,则该数不是素数。如果没有整除的现象,则该数为素数输出。
扩展资料:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数;否则称为合数。
质数的个数是无穷的。欧几里得的《几何原本》中有一个经典的证明。它使用了证明常用的方法:反证法。具体证明如下:假设质数只有有限的n个,从小到大依次排列为p1,p2,……,pn,设N=p1×p2×……×pn,那么, 是素数或者不是素数。
如果 为素数,则 要大于p1,p2,……,pn,所以它不在那些假设的素数集合中。
参考资料:
#include<stdioh>
#include<mathh>
int shu(long unsigned num) //判断一个数是否素数
{
int t,i;
t=sqrt(num)+1;
for(i=2;i<t;i++)
{
if(num%i==0)
break;
}
return i==t;
}
int main()
{
int i,k=0,n=100; //求3至100间的素数
for(i=3;i<n;i++)
if(shu(i))
{
k++;
printf("%3d ",i); //是的话,计数器加1,并按三位数形式打印输出
if(k%5==0)printf("\n"); //5个数一行
}
printf("\nsum:%d\n",k);
}
附输出结果:
003 005 007 011 013
017 019 023 029 031
037 041 043 047 053
059 061 067 071 073
079 083 089 097
sum:24
一元多项式的表示和相加
#include <stdioh>
#include <stdlibh>
typedef struct LNode{
int coef;
int expn;
struct LNode next;
}Polynomial;
void CreatePolyn(Polynomial& p,int n);
void AddPolyn(Polynomial pa,Polynomial pb,Polynomial& pc);
void SubPolyn(Polynomial pa,Polynomial pb,Polynomial& pc);
void PrintPolyn(Polynomial p);
int main()
{
Polynomial pa,pb,pc;
int n;
scanf("%d",&n);
CreatePolyn(pa,n);
scanf("%d",&n);
CreatePolyn(pb,n);
//PrintPolyn(pa);
//PrintPolyn(pb);
AddPolyn(pa,pb,pc);
PrintPolyn(pc);
return 0;
}
void CreatePolyn(Polynomial& p,int n)
{
p=(Polynomial)malloc(sizeof(struct LNode));//头节点
p->next=NULL;
for(;n>0;n--)
{
Polynomial s=(Polynomial)malloc(sizeof(struct LNode));
scanf("%d %d",&s->coef,&s->expn);
//寻找插入位置
Polynomial pi=p;
while(pi->next&&pi->next->expn>s->expn)pi=pi->next;
//插入新节点
s->next=pi->next;
pi->next=s;
}
}
void AddPolyn(Polynomial la,Polynomial lb,Polynomial& lc)
{
lc=(Polynomial)malloc(sizeof(struct LNode));
lc->next=NULL;
Polynomial pa=la->next;
Polynomial pb=lb->next;
Polynomial pc=lc;
while(pa&&pb)
{
Polynomial s=(Polynomial)malloc(sizeof(struct LNode));
if(pa->expn>pb->expn)
{
s->coef=pa->coef;
s->expn=pa->expn;
pa=pa->next;
}
else if(pa->expn<pb->expn)
{
s->coef=pb->coef;
s->expn=pb->expn;
pb=pb->next;
}
else
{
s->coef=pa->coef+pb->coef;
s->expn=pa->expn;
pa=pa->next;
pb=pb->next;
}
pc->next=s;
pc=s;
}
Polynomial p=papa:pb;
while(p)
{
Polynomial s=(Polynomial)malloc(sizeof(struct LNode));
s->coef=p->coef;
s->expn=p->expn;
pc->next=s;
pc=s;
p=p->next;
}
pc->next=NULL;
}
void PrintPolyn(Polynomial p)
{
Polynomial s=p->next;
int first=1;
while(s)
{
if(s->coef)
{
if(first)
{
if(s->coef>1||s->coef<-1)
printf("%d",s->coef);
else
if(s->coef<0)printf("-");
/
switch(s->expn)
{
case 0:
break;
case 1:
printf("x");
break;
default:
printf("x^%d",s->expn);
}
/
}
else
{
if(s->coef>1||s->coef<-1)
printf("%+d",s->coef);
else
printf("%c",s->coef>0'+':'-');
/
switch(s->expn)
{
case 0:
break;
case 1:
printf("x");
break;
default:
printf("x^%d",s->expn);
}
/
}
switch(s->expn)
{
case 0:
break;
case 1:
printf("x");
break;
default:
printf("x^%d",s->expn);
}
}
if(first)first=0;
s=s->next;
/
if(s)
{
if(s->coef)
{
printf("+");
}
}
/
}
printf("\n");
}
以上就是关于求一个100到150条的C语言程序全部的内容,包括:求一个100到150条的C语言程序、求一些C语言入门简单的数学题目,练习一下,顺便附上答案哈、C语言求100以内素数的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)