分解素数JAVA要求用 函数

分解素数JAVA要求用 函数,第1张

import java.util.Scanner

public class Test

{

static boolean is_odd(int n)//是否为素数

{

if(n==2||n==3) return true

if(n%2==0) return false//素数肯定不是偶数

int i

for(i=3i<=n/2i+=2)//素数从奇数中挑选

if(n%i==0) return false

return true

}

public static void main(String[] args)

{

Scanner in=new Scanner(System.in)

System.out.println("输入数值")

int n=in.nextInt()

int i

System.out.print(n+"=")

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

{

if(!is_odd(i)) continue//如果i不是素数,则i++,进行下一次循环

if(n%i==0)

{

while(true)//如果n%i一直 ==0则一直分解,否则跳出,i++

{

System.out.print(i)

n/=i

if(n!=1) System.out.print("*")

if(n%i!=0) break

}

}

}

System.out.println()

}

}

求出120以下所有素数。

把这些数放入一个set,一个数组

然后开始写个两层循环。

第一层 100到120,step2.

第二层 是素数数组。(优化的话可以最大到第一层的一半)

用第一层间数减第二层。然后在set里确定结果是不是也是素数。

这样就好了。

#include"stdio.h"

#include"math.h"

int prime(int n)

{int i

for(i=2i<=sqrt(n)i++)

if(n%i==0)return 0

return 1

}

int main()

{int  i,j,k

scanf("%d",&i)

{for(j=3j<=i/2j+=2)

if(prime(j)&&prime(i-j))

{printf("%3d=%3d+%-7d",i,j,i-j)

 if(++k%5==0)printf("\n")

}

}

return 0

}


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

原文地址:https://54852.com/yw/12006779.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存