public static void main(String[] args){ Scanner sc = new Scanner(System.in); long s = sc.nextLong(); int temp = 2; StringJoiner str= new StringJoiner(" "); while(temp<=s){ if(s%temp==0){ if(temp==s){ str.add(temp+""); break; }else{ str.add(temp+""); s=s/temp; } } else { temp++; } } }这个 是啥问题
#include <stdio.h> #include <string.h> #define N 100 int main() { long i; int j; long n; char over; long devisor[N]; scanf("%ld", &n); j = 0; while(1){ over = 1; for(i=2 ; i<=(n+1)/2 ; i++){ if(n%i == 0){ devisor[j++] = i; n /= i; over = 0; break; } } if(over) break; } for(i=0 ; i<j ; i++){ printf("%ld ", devisor[i]); } printf("%ld \n", n); }
import java.util.Scanner; public class Main { public static void main(String args[]){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ long a=2; long b=sc.nextLong(); double c=b/a; if(c==1.0000) System.out.print(c); while(c!=1.000000){ if(b%a==0){ System.out.print(a+" "); b=b/a; }else{ a++; } c=b; } } } }
import java.io.BufferedInputStream; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(new BufferedInputStream(System.in)); while (scanner.hasNext()) { int num=scanner.nextInt(); int i=2; while (num>1) { if (num%i==0) { System.out.print(i+" "); num/=i; i=2; }else { i++; } } } } } //运行时间:24ms //占用内存:276k
好多人没明白这个问题的意思,其实就是让你把输入的整数因式分解,只不过因子必须都是质数 例如:180 = 2 * 2 * 3 * 3 * 5;90 = 2 * 3 * 3 * 5;而不是找出所有的质数因子 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); long number = 0; while(scanner.hasNextLong()) { number = scanner.nextLong(); isPrimerFactors(number); } } private static void isPrimerFactors(long num) { long number = num; while(number != 1) { for(int i = 2; i <= number ;i++) { if(number % i == 0) { number /= i; System.out.print(i + " "); break; } } } } }