看到下面这种方法:
for (int i=1;i<10000;i++)
{
int factors = 0;
for (int j=1;j<(i+2)/2;j++)
{
if((i%j)==0) factors++;
}
{
if(factors<2) System.out.print(i + "is prime");
请问还有没有别的方法可以推荐?
谢谢!
for (int i=1;i<10000;i++)
{
int factors = 0;
for (int j=1;j<(i+2)/2;j++)
{
if((i%j)==0) factors++;
}
{
if(factors<2) System.out.print(i + "is prime");
请问还有没有别的方法可以推荐?
谢谢!
public class Test {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
for (int i = 2; i < 1000; i++) {
if(i%2!=0 && i%3!=0) {
sb.append(i + " ");
}
}
System.out.println(sb);
}
}
public boolean isPrimeNumber(int num) {
for (int i = 2; i <= Math.sqrt(num); i++) {
if(num%i==0)
{
return false;
}
}
return true;
}
public class TestZiShu{
public static void main(String[] args){
for(int i=2;i<31;i++){
boolean flag=true;
for(int j=2;j<i;j++){
if(i%j==0){
flag=false;
break;
}
}if(flag){
System.out.println(i);
}
}
}
}
for(int i = 1 ; i <= 100 ; i ++){
boolean flag = true;
for(int j = 2; j < i ; j ++){
if(i % j == 0){
flag = false ;
break;
}
}
if(flag == true){
System.out.println(i);
}
}
(i+2)/2 用sqrt(i)代替,减少循环次数
这个提示较好!!!
public static void main(String args[]){
int j=0;
int flag=0;
for(int i=2;i<=100;i++){
flag=1;
for(j=2;j<=Math.sqrt(i);j++){
if(i%j==0)
{
flag=0;
break;
}
}
if(flag==1){System.out.print(i+" ");}
}
}
}
for(int k=2;k<100;k++)
{
for(int n=2;n<=k;n++)
if(k%n==0)
{
if(k==n)
System.out.print(k+"|");
else
break;
}
}
2---100的质数
效率是时间复杂度加空间复杂度??
有什么软件或办法算出算法效率??谢谢
明天再来
while(i<100)
{
if(i%j!=0)
j++;
else
{
if(i==j)
System.out.print(i+"|");
i++;
j=2;
}
}
是这个
public static boolean isPrime(int num){
for(int i=2;i<num;i++){
if((num%i)==0){
return false;
}
}
return true;
} public static void main(String[] args){
System.out.println("3到1000之间所有的素数如下:");
for(int i=3;i<=1000;i++){
if(isPrime(i)){
System.out.print(i+" ");
}
}
}
int n;
System.out.println("1到100的所有质数:"+"\n"+"1"+"\n"+"2");
//质数的定义就是除了1和它本身都不能整除
for (n=2;n<=100;n++)
{
for (int i=2;i<n;i++)
{
if (n%i==0)
{
break;//最关键的地方
}
else
{
if (i==n-1)
System.out.println(n);
}
}
}
}
}
System.out.println("1到100的所有质数:"+"\n"+"1"+"\n"+"2");
for (n=2;n<=100;n++)
{
for (int i=2;i<n;i++)
{
if (n%i==0)
{
break;//最关键的地方
}
else
{
if (i==n-1)
System.out.println(n);
}
}
}
public static void main(String[] args){
int i=2;
int j=2;
for(i=2;i<=100;i++){
for(j=2;j<=i;j++){
if(i%j==0){
break;//跳出内循环
}
}if(i==j){
System.out.println(i+"是素数");
}
}
}
}