Program: wyszukujący ilość liczb super pierwszych z przedziału podanego przez użytkownika.
Liczba super pierwsza jest to taka która spełnia dwa następujące warunki:
- jest liczbą pierwszą,
- suma cyfr tej liczby jest również liczbą pierwszą.
Użytkownik wyznacza początek i koniec przedziału z którego są wyszukiwane liczby.
Kompilator: Eclipse
Kod programu:
import javax.swing.JOptionPane;
public class glowna {
//Program wyliczający ilość liczb super pierwszych.
public static boolean pierwsza(int n){
if((n%2==0)&&(n!=2)) return false;
for(int i=3;i<=Math.sqrt(n);i+=2){
if(n%i==0) return false;
}
return true;
}
public static int SumaCyfr(int n){
int suma=0;
String sc=String.valueOf(n);
for(int i=0;i<sc.length();i++){
suma+=(sc.charAt(i)-48); }
return suma;
}
public static void main(String[] args) {
int p=Integer.parseInt(JOptionPane.showInputDialog("Podaj p"));
int k=Integer.parseInt(JOptionPane.showInputDialog("Podaj k"));
int ile=0;
for(int i=p;i<=k;i++){
if(pierwsza(i)){
if(pierwsza(SumaCyfr(i))){
ile++;
}
}
}
System.out.print("Jest "+ile+" liczb "+"" +
"super pierwszych");
}
} Słowniczek pojęć:
To takie liczby pierwsze, których pozycja na liście liczb pierwszych też jest liczbą pierwszą. Do optymalnego rozwiązania warto wykorzystać sito Eratostenesa. Przykładowo najmniejszą liczbą Super Pierwszą jest 3, ponieważ 3 jest drugą liczbą pierwszą, a 2 też jest liczbą pierwszą.