Продолжая изучать книгу H. Shildtа "java a beginner's guide".
Простое число - это натуральное (целое положительное) число, имеющее ровно два различных натуральных делителя. Другими словами, число
простое, если оно больше
и делится без остатка только на
и на
.(Википедия). Если говорить еще проще, то простое число 3, например, делится нацело только на 3 и на 1, а если поделить его на 2, то получится 1.5(полтора), то есть с остатком 0.5.Вот код программы, который предлагают в ответах:
public class Prime { public static void main(String args[]) { int i, j; boolean isprime; for (i = 2; i < 1000; i++) { isprime = true; // Проверить делится ли число без остатка for (j = 2; j < i/j; j++) // если число делится без остатка значит оно простое if ((i % j) == 0) isprime = false; if (isprime) System.out.println(i + " is prime."); } } }
После того, как я скомпилировал программу, в консоль вывелись не только простые числа, но и составные. Такие как "4", "9", "25", "49" и другие. Долгое время не мог понять, что значит строка кода цикла for (j = 2; j < i/j; j++). Но, немного подумав, решил исправить её на следующую for (j = 2; j < i; j++). И программа заработала как следует.
public class Prime { public static void main(String args[]) { int i, j; boolean isprime; for (i = 2; i < 50; i++) { isprime = true; // Проверить делится ли число без остатка for (j = 2; j < i; j++) // если число делится без остатка значит оно простое if ((i % j) == 0) isprime = false; if (isprime) System.out.println(i + " is prime."); } } }
Я как ни пытался - не понял как этот цикл работает, сам в итоге такой код написал:
ОтветитьУдалитьclass rara {
public static void main(String args[]) {
int x;
boolean prost;
for(x = 2; x <= 100; x++) {
prost = true;
if((((x%2) == 0) & (x != 2))
| (((x%3) == 0) & (x != 3))
| (((x%5) == 0) & (x != 5))
| (((x%7) == 0) & (x != 7))) prost = false;
if(prost)
System.out.println(x + " простое");
}
}
}
правда этот код нифига не универален(
Удалитьне проще ли вот так
ОтветитьУдалить// Найти простые числа от 2 до 100.
public class ProstieChisla {
public static void main(String[] args) {
int i;
for(i=2;i<=100;i++){
if(i==2|i==3|i==5|i==7){
System.out.println(i);
}else if ((i%2)!=0&(i%3)!=0&(i%5)!=0&(i%7)!=0){
System.out.println(i);
}
}
}
}