数学老师上完课后,给小B布置了一个作业。尽管作业描述很简单,但结果却不那么简单。题目要求是,对于区间[a, b]中的所有正整数和给定的正整数k,计算其中最小因数为k的整数个数。遗憾的是,老师上课的时候,小B正在和周公神游天外,这是她不得不向你求助的原因。作为好朋友,你愿意帮助她吗?
输出
5
样例只记得一个了:
输入
2 10 2输出
5
public class 数学作业 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int count =0;
for (int i = a; i <=b; i++) {
if(i%c==0&&isPrime(c)&&isPrime(i,c)){
count++;
}
}
System.out.println(count);
}
}
//k是一个质数
private static boolean isPrime(int c) {
for (int i = 2; i*i < c; i++) {
if(c%i == 0) return false;
}
return true;
}
//k是最小因数
private static boolean isPrime(int n,int k){
for (int i = 2; i <= n; i++) {
if( n % i == 0 ){
if( i == k ){
return true;
}
return false;
}
}
return false;
}
}
这题更郁闷,过了10%的测试用例。不知道,漏了什么情况没有。。