import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
int w = sc.nextInt();
int h = sc.nextInt();
int P = 0;
int ans=0;
if(x>=y){
P=y; //축으로부터의 거리
}
else{
P=x;
}
if(w-x>=h-y){
ans=h-y;
if(P<ans){
ans=P;
}
}
else{
ans=w-x;
if(P<ans){
ans=P;
}
}
System.out.print(ans);
}
}
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int x=1, y=1, z=1;
for(int i=0;i<30000;i++){
x=sc.nextInt();
y=sc.nextInt();
z=sc.nextInt();
if(x!=0&&y!=0&&z!=0){
if(z*z==x*x+y*y)
{ System.out.println("right");
}
else if(x*x==y*y+z*z){
System.out.println("right");
}
else if(y*y==x*x+z*z){
System.out.println("right");
}
else{
System.out.println("wrong");
}
}
else {
break;
}
}
}
}
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
double r=sc.nextInt();
double U=r*r*Math.PI;
double R=r*Math.sqrt(2);
double T=R*R;
System.out.println(String.format("%.6f",U));
System.out.println(String.format("%.6f",T));
}
}
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int num=sc.nextInt();
int cnt=0;
int count=0;
for(int i=0;i<num;i++){
count=0;
int x=sc.nextInt();
for(int j=1;j<=x;j++){
if(x%j==0){
count++;
}
}
if(count==2)
cnt++;
}
System.out.print(cnt);
}
}
간단하게 i=1에서부터 입력받은 x값까지 나누어 나눠 떨어지는 부분은 count를 세게 하고, count 개수가 2개인 것을 소수로 여겨 cnt++ 처리해주었다. 근데 첫번째 for문 안에 count=0을 안넣어주니 count가 계속 0값이 나왔다. 지역변수 처리를 해줘야하나봄..!
소수 구하는 법은 더 있는데 이 문제에선 2부터 X-1까지 나누라했으므로 풀이는 일단 이렇게!
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int M=sc.nextInt();
int N=sc.nextInt();
int sum=0;
int min=N;
int cnt=0;
int ans=0;
int count=0;
for(int i=N;i>=M;i--){
cnt=0;
for(int j=1;j<=i;j++){
if(i%j==0){
cnt++;
}
}
if(cnt==2){
count++;
sum+=i;
if(min>i){
min=i;
}
}
else if(cnt!=2){
ans=-1;
}
}
if(count==0){
System.out.println(ans);
}
else{
System.out.println(sum);
System.out.println(min);
}
}
}
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int N=sc.nextInt();
int i=2;
int num=1;
while(N!=num){
if(N==1){
break;
}
if(N%i==0){
N=N/i;
num*=i;
System.out.println(i);
}
else{
i++;
}
}
}
}
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int N=sc.nextInt();
for(int i=2;i<=Math.sqrt(N);i++){
while(N%i==0){
System.out.println(i);
N/=i;
}
}
if(N!=1)
System.out.println(N);
}
}
오류났던 코드
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int X=0;
int Y=0;
int ansx=0;
int ansy=0;
int[] x= new int[3];
int[] y= new int[3];
for(int i=0;i<3;i++){
x[i]=sc.nextInt();
y[i]=sc.nextInt();
for(int j=0;j<3;j++){
if(x[i]!=x[j]){
if(x[i]>x[j])
{X=x[i]-x[j];
ansx=x[j]+X;
}
else if (x[i]<x[j]){
X=x[j]-x[i];
ansx=x[i]+X;
}
else
ansx=x[i];
if(y[i]!=y[j]){
if(y[i]>y[j])
{Y=y[i]-y[j];
ansy=y[j]+Y;
}
else if (y[i]<y[j]){
Y=y[j]-y[i];
ansy=y[i]+Y;
}
}
else
ansy=y[i];
}
}
}
System.out.print(ansx+" "+ansy);
}
}
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int X=0;
int Y=0;
int[] one= {sc.nextInt(), sc.nextInt()};
int[] two= {sc.nextInt(), sc.nextInt()};
int[] three= {sc.nextInt(), sc.nextInt()};
if(one[0]==two[0])
X=three[0];
else if(one[0]==three[0])
X=two[0];
else
X=one[0];
if(one[1]==two[1])
Y=three[1];
else if(one[1]==three[1])
Y=two[1];
else
Y=one[1];
System.out.print(X+" "+Y);
}
}
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int T=sc.nextInt();
for(int i=0;i<T;i++){
int n=sc.nextInt();
boolean[] prime=new boolean[n+1];
int min=n;
int p=n/2;
prime[0]=prime[1]=false;
for(int k=2;k<=n;k++){
prime[k]=true;
}
for(int k=2;k*k<=n;k++){
for(int j=k*k;j<=n;j+=k){
prime[j]=false;
}
}
for(int k=n/2;k<=n;k++){
if(prime[p]==true&&prime[k]==true){
System.out.println(p+" "+k);
break;
}
else
p--;
}
}
}
}
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int M = sc.nextInt();
int N = sc.nextInt();
boolean[] prime= new boolean[N+1];
prime[0]=prime[1]=false;
//소수면 true
for(int i=2;i<=N;i++){
prime[i]=true;
}
//2부터 수를 키워가며 배수들을 제외
for(int i=2;i*i<=N;i++){
for(int j=i*i;j<=N;j+=i){
prime[j]=false;
}
}
for(int i=M;i<=N;i++)
if(prime[i]==true){
System.out.println(i);
}
}
}
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
while(true){
int n=sc.nextInt();
int cnt=0;
boolean[] prime=new boolean[2*n+1];
if(n==0)
break;
for(int i=1;i<=2*n;i++){
prime[i]=true;
}
prime[0]=prime[1]=false;
for(int i=2;i*i<=2*n;i++){
for(int j=i*i;j<=2*n;j+=i){
prime[j]=false;
}
}
for(int i=n+1;i<=2*n;i++){
if(prime[i]==true){
cnt++;
}
}
System.out.println(cnt);
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
while (T-- > 0) {
int x1 = in.nextInt();
int y1 = in.nextInt();
int r1 = in.nextInt();
int x2 = in.nextInt();
int y2 = in.nextInt();
int r2 = in.nextInt();
System.out.println(tangent_point(x1, y1, r1, x2, y2, r2));
}
}
// 접점 개수 구하는 함수
public static int tangent_point(int x1, int y1, int r1, int x2, int y2, int r2) {
int distance_pow = (int)(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)); // 중점간 거리 distance의 제곱
// case 1 : 중점이 같으면서 반지름도 같을 경우
if(x1 == x2 && y1 == y2 && r1 == r2) {
return -1;
}
// case 2-1 : 두 원의 반지름 합보다 중점간 거리가 더 길 때
else if(distance_pow > Math.pow(r1 + r2, 2)) {
return 0;
}
// case 2-2 : 원 안에 원이 있으나 내접하지 않을 때
else if(distance_pow < Math.pow(r2 - r1, 2)) {
return 0;
}
// case 3-1 : 내접할 때
else if(distance_pow == Math.pow(r2 - r1, 2)) {
return 1;
}
// case 3-2 : 외접할 때
else if(distance_pow == Math.pow(r1 + r2, 2)) {
return 1;
}
else {
return 2;
}
}
}
아래는 내가 쓴 코드
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int T=sc.nextInt();
int ans=0;
for(int i=0;i<T;i++){
int x1=sc.nextInt();
int y1=sc.nextInt();
int r1=sc.nextInt();
int x2=sc.nextInt();
int y2=sc.nextInt();
int r2=sc.nextInt();
int ptp=(int)Math.sqrt(Math.pow(x2-x1, 2)+Math.pow(y2-y1, 2));
if(ptp==r1+r2){
ans=1;
}
else if(ptp==Math.abs(r2-r1)){
ans=1;
}
else if(x1==x2&&y1==y2&&r1==r2){
ans=-1;
}
else if(ptp<Math.abs(r2-r1)){
ans=0;
}
else if(Math.sqrt(ptp)>Math.abs(r1+r2))
{ans=0;}
else if(x1==x2&&y1==y2&&r1!=r2){
ans=0;
}
else
ans=2;
System.out.println(ans);
}
}
}