java 求质因数 需要class interface or enum错误 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我编写一个主方法public static void main 方法体用了后面自定义的一个求小于n的质数的方法,该方法名为,public static int[] get(int n) 但idea显示get方法是有问题的,问题如题 贴代码,估计是你的代码不符合java规范 import java.util.*;public class Main{ public static void main(String[] args){ int n; Scanner in=new Scanner(System.in); n=in.nextInt(); int [] array=new int[n]; array=getPrimeNumber(n); //把n以内的质数通过定义的方法赋值给数组array int [] a=new int[n]; //用来存放n质因数 int i=2; //作为array的下标,从2开始是为了匹配自定义的getPrimeNumber方法 int q=0; //作为数组a的下标,没有其他含义 while (i<n) //求出n的质因数并存放在数组a中 { if(n%array[i]==0) { n=n%array[i]; a[q]=array[i]; q++; } else i++; } System.out.printf("%d= ",n); //输出结果 for(q=0;q<n;q++) { if(a[q]!=0) //输出第一个数据,这是为了让后续数据统一成“星号+数据”的格式便于输出 { System.out.printf("%d*",a[q]); break; } } for(int d=q+1;d<n;d++) //d同q,仅作为一个数组下标,无其他含义 { if(a[d]!=0) { System.out.printf("*%d",a[d]); } else continue; } System.out.printf("\n"); }}//定义一个方法,找出n之内的所有质数存放在数组中,并将该数组返回public static int [] getPrimeNumber(int n) { int[] array = new int[n]; int q = 0; for (int i = 2; i < n; n++) { if (n % i == 0) { array[q] = i; q++; } else continue; } return array;} getPrimeNumber移动到和main方法同级,不能再class外面 1. 类名不能为关键字“Main”2. Scanner对象名不能为关键字“in”3. 定义数组时,int和[]中间不能有空格4. getPrimeNumber方法应当放在类里面,与main方法同级 package com.demo;import java.util.*;public class Main{ public static void main(String[] args){ int n; Scanner in=new Scanner(System.in); n=in.nextInt(); int [] array=new int[n]; array=getPrimeNumber(n); //把n以内的质数通过定义的方法赋值给数组array int [] a=new int[n]; //用来存放n质因数 int i=2; //作为array的下标,从2开始是为了匹配自定义的getPrimeNumber方法 int q=0; //作为数组a的下标,没有其他含义 while (i<n) //求出n的质因数并存放在数组a中 { if(array[i]!=0 && n%array[i]==0) { n=n%array[i]; a[q]=array[i]; q++; } else i++; } System.out.printf("%d= ",n); //输出结果 for(q=0;q<n;q++) { if(a[q]!=0) //输出第一个数据,这是为了让后续数据统一成“星号+数据”的格式便于输出 { System.out.printf("%d*",a[q]); break; } } for(int d=q+1;d<n;d++) //d同q,仅作为一个数组下标,无其他含义 { if(a[d]!=0) { System.out.printf("*%d",a[d]); } else continue; } System.out.printf("\n"); } //定义一个方法,找出n之内的所有质数存放在数组中,并将该数组返回 //这个函数是错的,无法找出质数 public static int [] getPrimeNumber(int n) { int[] array = new int[n]; int q = 0; for (int i = 2; i < n; i++) {//这里是i++ if (n % i == 0) { array[q] = i; q++; } else continue; } return array; }}错误还没处理完。。 这个程序问题多多,首先求质数的类无法求质数,然后就算求出质数数组和下标有什么关系?还有就是下面程序中 if(array[i]!=0 && n%array[i]==0) { n=n%array[i]; a[q]=array[i]; q++; }n=n%array[i]; 直接把n值都换了。 汉字显示的问题 BufferedReader乱码问题,在线抢分咯~ 【求助】linux下java调用awk 这段代码错在何处? 怎么使用UNICODE码呢?? GEF开发时,实现复制黏贴的问题 equals 不是比较内容吗?为什么下面会的结果会是 false? 使用applet(Jcreator)怎么能够产生文件打开和保存对话框? 在JAVA中如何能够等待一定时间以后再做下面的语句?? 计算地图上的一些点是否在某个范围内 新手上路 java线程池问题
public class Main{
public static void main(String[] args){
int n;
Scanner in=new Scanner(System.in);
n=in.nextInt();
int [] array=new int[n];
array=getPrimeNumber(n); //把n以内的质数通过定义的方法赋值给数组array
int [] a=new int[n]; //用来存放n质因数
int i=2; //作为array的下标,从2开始是为了匹配自定义的getPrimeNumber方法
int q=0; //作为数组a的下标,没有其他含义
while (i<n) //求出n的质因数并存放在数组a中
{
if(n%array[i]==0)
{
n=n%array[i];
a[q]=array[i];
q++;
}
else
i++;
}
System.out.printf("%d= ",n); //输出结果
for(q=0;q<n;q++)
{
if(a[q]!=0) //输出第一个数据,这是为了让后续数据统一成“星号+数据”的格式便于输出
{
System.out.printf("%d*",a[q]);
break;
}
}
for(int d=q+1;d<n;d++) //d同q,仅作为一个数组下标,无其他含义
{
if(a[d]!=0)
{
System.out.printf("*%d",a[d]);
}
else
continue;
}
System.out.printf("\n");
}
}
//定义一个方法,找出n之内的所有质数存放在数组中,并将该数组返回
public static int [] getPrimeNumber(int n) {
int[] array = new int[n];
int q = 0;
for (int i = 2; i < n; n++) {
if (n % i == 0) {
array[q] = i;
q++;
}
else
continue;
}
return array;
}
getPrimeNumber移动到和main方法同级,不能再class外面
2. Scanner对象名不能为关键字“in”
3. 定义数组时,int和[]中间不能有空格
4. getPrimeNumber方法应当放在类里面,与main方法同级
public class Main{
public static void main(String[] args){
int n;
Scanner in=new Scanner(System.in);
n=in.nextInt();
int [] array=new int[n];
array=getPrimeNumber(n); //把n以内的质数通过定义的方法赋值给数组array
int [] a=new int[n]; //用来存放n质因数
int i=2; //作为array的下标,从2开始是为了匹配自定义的getPrimeNumber方法
int q=0; //作为数组a的下标,没有其他含义
while (i<n) //求出n的质因数并存放在数组a中
{
if(array[i]!=0 && n%array[i]==0)
{
n=n%array[i];
a[q]=array[i];
q++;
}
else
i++;
}
System.out.printf("%d= ",n); //输出结果
for(q=0;q<n;q++)
{
if(a[q]!=0) //输出第一个数据,这是为了让后续数据统一成“星号+数据”的格式便于输出
{
System.out.printf("%d*",a[q]);
break;
}
}
for(int d=q+1;d<n;d++) //d同q,仅作为一个数组下标,无其他含义
{
if(a[d]!=0)
{
System.out.printf("*%d",a[d]);
}
else
continue;
}
System.out.printf("\n");
}
//定义一个方法,找出n之内的所有质数存放在数组中,并将该数组返回
//这个函数是错的,无法找出质数
public static int [] getPrimeNumber(int n) {
int[] array = new int[n];
int q = 0;
for (int i = 2; i < n; i++) {//这里是i++
if (n % i == 0) {
array[q] = i;
q++;
}
else
continue;
}
return array;
}
}
错误还没处理完。。
还有就是下面程序中 if(array[i]!=0 && n%array[i]==0)
{
n=n%array[i];
a[q]=array[i];
q++;
}n=n%array[i]; 直接把n值都换了。