Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class RSA3 {
- public static void main(String[] args) {
- Scanner sc=new Scanner(System.in);
- long n,t;
- int p,q,r,indexp,indexq,indexr;
- p=q=r=0;
- int []primes=new int[9592];
- int index=1;
- primes[0]=2;
- for (int i = 3; i < 100000; i+=2) {
- if(isPrime(i)) {
- primes[index]=i;
- index++;
- }
- }
- do {
- n=sc.nextLong();
- if(n==0) {
- break;
- }
- t=n;
- indexp=numberPrime(0,n,primes);
- p=primes[indexp];
- n/=p;
- indexq=numberPrime(indexp+1,n,primes);
- q=primes[indexq];
- n/=q;
- indexr=numberPrime(indexq+1,n,primes);
- r=primes[indexr];
- if(p*q*r>=3)System.out.printf("%d = %d x %d x %d\n",t,p,q,r);
- }while(true);
- }
- private static int numberPrime(int index,long n,int []primes) {
- for (int i = index; i <primes.length; i++) {
- if(n%primes[i]==0) {
- return i;
- }
- }
- return 0;
- }
- public static boolean isPrime(int num){
- if((num > 2 && num % 2 == 0) || num == 1) {
- return false;
- }
- for (int i = 3; i <= (int)Math.sqrt(num); i += 2) {
- if (num % i == 0) {
- return false;
- }
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement