#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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)