Viết trong hàm main :
import java.util.Scanner;
public class SoNguyenTo {
/**
* Creates a new instance of SoNguyenTo
.
*/
public SoNguyenTo() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
double n=0;
double tong=5;
do{
System.out.print("Nhap vao so n: ");
Scanner scan=new Scanner(System.in);
n=scan.nextDouble();
if(n<0)
{
System.out.println("Nhap lai n!");
}
}while(n<0);
if(n==0 {
System.out.println("So 0 khong phai la so nguyen to !!");
}
if(n==1){
System.out.println("So 1 khong phai la so nguyen to !!");
}
int flag=0;
System.out.println("La nguyen to : 2");
System.out.println("La nguyen to : 3");
for (int i = 4; i<=n; i++)//duyệt từ 4
{
double a=i;
for (int j = 2; j<=Math.sqrt(a); j++)
{
if(i%j==0){
flag=0;
break;
}
flag=1;
};
if(flag==1)
{
System.out.println("Nguyen to la : " + i);
tong+=i;
}
};
System.out.println("Tong cua cac so nguyen to nho hon "+ n +" la : "+ tong);
}
}
Viết theo chương trình con (hay còn gọi là phân hàm,hướng dối tượng,..) :
import java.util.Scanner;
public class SoNguyenTo {
/**
* Creates a new instance of SoNguyenTo
.
*/
public SoNguyenTo() {
}
/**
* @param args the command line arguments
*/
public static int LaNguyenTo(double n) // stactic được sử dụng để hàm main hiểu rằng đây là một hàm với phương thức tĩnh(hiểu nom na là vậy)
{
if(n==0 || n==1)return 0;
for (int i = 2; i<=Math.sqrt(n); i++)
{
if(n%i==0)
return 0;
};
return 1;
}
public static void main(String[] args) {
int n=0;
int tong=0;
do{
System.out.print("Nhap vao so n: ");
Scanner scan=new Scanner(System.in);
n=scan.nextInt();
if(n<0)
{
System.out.println("Nhap lai n!");
}
}while(n<0);
for (int i = 1; i<=n; i++)
{
if(LaNguyenTo(i)==1)
{
System.out.println("Nguyen to la : " + i);
tong+=i;
}
};
System.out.println("Tong cua cac so nguyen to nho hon "+ n +" la : "+ tong);
}
}
Một lời khuyên nhé : các bạn nên viết theo dạng cấu trúc chương trình con rất có ích cho việc thi liên thông sau này nếu như bạn nào có nhu cầu liên thông.
Các bạn tự test và kiểm tra nhé. Chúc may mắn...