問題の説明:
2つの整数があります。各整数の約数の合計(それ自体を除く)が互いに等しい場合、数値のペアをフレンドリと呼びます。例:
9の約数の合計は次のとおりです:1 + 3 = 4 4
の約数の合計は:1 + 2 = 3である
ため、9と4は友好的ではありません。
220の約数の合計は次のとおりです。1245 10 11 20 22 44 55 110 =
284284の約数の合計は次のとおりです。124 71 142 = 220
なので、220と284は友好的です。
2つの数が友好的な数であるかどうかを判断するプログラムを作成します。
入力形式:
1行、2つの整数、スペースで区切る
出力形式:
フレンドリ番号の場合は「yes」を出力し、そうでない場合は「no」を出力します。引用符は含まれないことに注意してください。
サンプル入力:
220 284
サンプル出力:
はい
データのスケールと規則:
両方の整数が10000未満です
c言語参照コード:
#include <stdio.h>
int main()
{
int n,m;
scanf("%d%d",&n,&m);
int i,sum1=0,sum2=0;
for(i=1;i<n;i++)
{
if(n%i==0)
sum1+=i;
}
for(i=1;i<m;i++)
{
if(m%i==0)
sum2+=i;
}
if(sum1==m&&sum2==n)
printf("yes");
else
printf("no");
return 0;
}
Java参照コード:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
int sum1=0,sum2=0;
for(int i=1;i<n;i++)
{
if(n%i==0)
sum1+=i;
}
for(int i=1;i<m;i++)
{
if(m%i==0)
sum2+=i;
}
if(sum1==m&&sum2==n)
System.out.println("yes");
else
System.out.println("no");
}
}
参照リンク:
ポータル