您的位置:首页 > 编程语言 > C语言/C++

C语言 java输出100之内的质数

2017-09-26 22:46 190 查看
C语言实现:

#include<stdio.h>
#include<math.h>

//输出100内的质数

/*
质数判断的基本思路:对于正整数n(n>1),用2~根号n去除它,如果存在整除的情况,则n不是质数
否则,必定为质数。
*/
int isprame(int n)//判断一个数是不是质数
{
int k;
int i;
if(n<=1)
//        printf("%d不是质数",n);
return 0;
else
{
k=(int)sqrt(n);
for(i=2;i<=k;i++)
{
if(n%i==0)//如果n能整除2~sqrt(n),那么就不是质数
{
break;
}
}
if(i>k)
//            printf("%d是质数\n",n);
return 1;//1表示是质数
else
//            printf("%d不是质数\n",n);
return 0;//0表示不是质数
}
}
void main()
{
int i;
printf("100内的质数为:\n");
int count=0;
for(i=2;i<=100;i++)
{
if(isprame(i))//如果返回1
{
if(i<10)
printf("0%d ",i);
else
printf("%d ",i);
count++;
if(count%10==0)//没十个数输出为一组
printf("\n");
  }

  }

}



java实现:

java中的Formatter类可以实现格式化输出,和C语言的printf()函数一样。

package Ctojava;

import java.util.Formatter;

public class PrintPrime
{
//使用格式化输出,类似于c中的printf();
static Formatter formatter=new Formatter(System.out);

public static void main(String[] args)
{
int count=0;
formatter.format("100内的质数为:\n");
for(int i=0;i<100;i++)
{
if(isPrime(i))
{
if(count!=0)
{
formatter.format(",");
if(count%10==0)
formatter.format("\n");
}
formatter.format("%3d", i);
//类次与c语言中的printf("%3d",i);
count++;
}

}
}
static boolean isPrime(int n)
{
if(n<=1)
return false;
for(int i=2;i<Math.sqrt(n);i++)
{
if(n%i==0)
return false;
}
return true;
}
}
结果:

100内的质数为:
2,  3,  4,  5,  7,  9, 11, 13, 17, 19,
23, 25, 29, 31, 37, 41, 43, 47, 49, 53,
59, 61, 67, 71, 73, 79, 83, 89, 97
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: