编程:求20以内所有素数,按每行显示4素数输出

编程:求20以内所有素数,按每行显示4素数输出,第1张

#include <stdio.h>码空

int prime(int n)

{for(int i=2i*i<=ni++)

if(n%i==0)return 0

return n>1

}

int main()

{int i,n=0

for(i=2i<20i++)

if(prime(i))

{printf("%4d",i)

if(++n%4==0)printf("肢模磨\n"历斗)

}

return 0

}

import java.math.*

public class test

{

public static void main(String args[])

{

int i,j=1

double t=0

int[] a =new int[102]

for(i=1i<=20i++)

{

a[i]=i

t=Math.sqrt(a[i])

for(j=2j<=tj++)

{

if (a[i]%j==0)

break

}//要遍历所有的信绝可能的因子以后才能得出结论是否素数

if (j>滑山姿唯指t) System.out.println(a[i])

}

}

}

你的要求说得不是很清楚,下面提供的这个程序先生成一个存储0~20的单链表,然后剔除其中非模塌素数节点,最后打印出经处理后仅剩素数节点的单链表。#include <stdio.h>

#include <math.h>

#include <malloc.h>

#include <conio.h>

typedef struct node

{

int n

struct node *Next

}num

int is_prime(int num)/*自定义函数:判断是否素数*/

{

int i,sq

if(num<=1) return 0

sq=(int)sqrt(num)

for(i=2i<=sqi++)

{

if(num%i==0) break

}

if(i<=sq)

return 0

else

return 1

}

main()

{

int i,m=0

num *h,*p,*s

if((h=(num *)malloc(sizeof(num)))==NULL) exit(0)/*生成一个存储1~20的单链表*/

h->n=1/*h:表头,下同*/

h->Next=NULL

p=h/*p:当前节点,下同*/

for(i=2i<=20i++)

{

if((s=(num *)malloc(sizeof(num)))==NULL) exit(0)

p->Next=s

s->旦闹圆n=i

p=s

}

p=h

s=p

for(i=0i<20i++) /*遍历链表,剔除非素数节点*/

{

if(is_prime(p->n)==1)

{

s=p

p=p->Next

m++

if(m==1) h=s

}

else

{

s->Next=p->Next

p=p->Next

}

}

p=h

for(i=1i<=mi++)/*打印整弯销理后的单链表*/

{

printf("%d ",p->n)

p=p->Next

}

getch()

return

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12463386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存