java - 以明确的模式打印素数
问题描述
我必须以这种格式打印任何数字的素数。例如:32 = 2*2*2*2*2 这是我的代码。它适用于除 32 之外的所有人,它给出:2*2*2*2*2* 如何避免最后一个 *. 这是我的代码:public class PF{
public static void pf(int n) {
for(int i = 2; i< n; i++) {
while(n%i == 0) {
System.out.print(i+ "*");
n = n/i;
}
}
if (n > 2) System.out.print(n);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a number");
int n = sc.nextInt();
pf(n);
}
解决方案
其他选项,您可以在 while 循环中避免 * when n=i
public static void pf(int n) {
for (int i = 2; i < n; i++) {
while (n % i == 0) {
System.out.print(i);
if (n != i) {
System.out.print("*");
}
n = n / i;
}
}
if (n > 2)
System.out.print(n);
}
推荐阅读
- javascript - 带有 FileReader 的 JavaScript Promise
- java - Camel:迭代标题中的元素,并行处理
- php - 如何在 php 中集成 ccavenue 时在重定向 url 页面中获取 orderid
- ibm-mobilefirst - IBM Mobilefirst V8 - 使用 Ionic v3.20.0 的混合应用程序的自定义直接更新未发生
- php - Laravel 5.6 奇怪的行为 - 我重命名后 Laravel 看不到控制器
- aem - AEM /welcome 未重定向到 /libs/cq/core/content/welcome.html
- python - 将直线显示为斜坡的绘图 - Python
- asp.net-web-api - Coinigy v2 API - 如何使用 StartDate 和 EndDate 参数调用交易历史 API
- java - 数据库从 WSO2 bps 迁移到 Camunda
- shell - 只需要 grep IP 地址