Theo câu hỏi, nhiệm vụ là tìm số nguyên tố gần nhất bằng cách cộng số nguyên tố bắt đầu từ 2 nếu số N không phải là số nguyên tố.
Input: N=6 Output: 11
Giải thích
Vì 6 không phải số nguyên tố, cộng số nguyên tố đầu tiên vào 6 tức là 2 sẽ ra 8. 8 cũng không phải số nguyên tố, cộng số nguyên tố tiếp theo sau 2 là 3 sẽ cho 8+3 = 11. Do đó 11 là số nguyên tố, đầu ra sẽ là 11.
Thuật toán
START
Step 1- > declare num=15, i = num/2
Step 2 -> Loop For k=2 and k<=i and k++
Set I=k/2
Loop For j=2 and j<=l and j++
Set flag=0;
If k%j=0
Set flag=1
Break
End
End
IF flag=0
Set num=num+k;
End IF
Set a=num/2
Loop For m=2 and m<=a and m++
Set flag1=0;
IF num%m=0
Set flag1=1
break
End
END
If flag1=0
Print num
End
END
STOPVí dụ
#include<stdio.h>
int main(){
int num =15 ;
int i,k,j,sum=0,flag=0,l,flag1=0,a,m;
i=num/2;
for(k=2;k<=i;k++) {
l=k/2;
for(j=2;j<=l;j++) {
flag=0;
if(k%j==0) {
flag=1;
break;
}
}
if(flag==0) {
num=num+k;
}
a=num/2;
for(m=2;m<=a;m++) {
flag1=0;
if(num%m==0) {
flag1=1;
break;
}
}
if(flag1==0){
printf("%d",num);
return 0;
}
}
}Kết quả
Nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra đầu ra sau
17