#include <stdio.h>
#include <math.h>
int isPerfect( int x) {
int i, sum = 0 ;
for ( i = 1 ; i < x; i++ )
if ( x % i == 0 ) sum += i;
return sum == x;
}
int isPrime( int num) {
if ( num < 2 ) return 0 ;
int i;
for ( i = 2 ; i * i <= num; i++ )
if ( num % i == 0 ) return 0 ;
return 1 ;
}
void firstNPrimes( int n) {
int count = 0 , num = 2 ;
printf ( "First %d primes: " , n
) ; while ( count < n) {
if ( isPrime( num) ) {
count++;
}
num++;
}
}
void firstNPerfectSquares( int n) {
int i;
printf ( "First %d perfect squares: " , n
) ; for ( i = 1 ; i <= n; i++ )
}
int main( ) {
int choice, n;
do {
printf ( "\n ===== MENU =====\n " ) ; printf ( "1. Check Perfect Number\n " ) ; printf ( "2. Print first n primes\n " ) ; printf ( "3. Print first n perfect squares\n " ) ;
switch ( choice) {
case 1 :
if ( isPerfect( n) )
printf ( "%d is Perfect: True\n " , n
) ; else
printf ( "%d is Perfect: False\n " , n
) ; break ;
case 2 :
firstNPrimes( n) ;
break ;
case 3 :
firstNPerfectSquares( n) ;
break ;
case 0 :
break ;
default :
}
} while ( choice != 0 ) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgppbnQgaXNQZXJmZWN0KGludCB4KSB7CiAgICBpbnQgaSwgc3VtID0gMDsKICAgIGZvciAoaSA9IDE7IGkgPCB4OyBpKyspCiAgICAgICAgaWYgKHggJSBpID09IDApIHN1bSArPSBpOwogICAgcmV0dXJuIHN1bSA9PSB4Owp9CgppbnQgaXNQcmltZShpbnQgbnVtKSB7CiAgICBpZiAobnVtIDwgMikgcmV0dXJuIDA7CiAgICBpbnQgaTsKICAgIGZvciAoaSA9IDI7IGkgKiBpIDw9IG51bTsgaSsrKQogICAgICAgIGlmIChudW0gJSBpID09IDApIHJldHVybiAwOwogICAgcmV0dXJuIDE7Cn0KCnZvaWQgZmlyc3ROUHJpbWVzKGludCBuKSB7CiAgICBpbnQgY291bnQgPSAwLCBudW0gPSAyOwogICAgcHJpbnRmKCJGaXJzdCAlZCBwcmltZXM6ICIsIG4pOwogICAgd2hpbGUgKGNvdW50IDwgbikgewogICAgICAgIGlmIChpc1ByaW1lKG51bSkpIHsKICAgICAgICAgICAgcHJpbnRmKCIlZCAiLCBudW0pOwogICAgICAgICAgICBjb3VudCsrOwogICAgICAgIH0KICAgICAgICBudW0rKzsKICAgIH0KICAgIHByaW50ZigiXG4iKTsKfQoKdm9pZCBmaXJzdE5QZXJmZWN0U3F1YXJlcyhpbnQgbikgewogICAgaW50IGk7CiAgICBwcmludGYoIkZpcnN0ICVkIHBlcmZlY3Qgc3F1YXJlczogIiwgbik7CiAgICBmb3IgKGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICBwcmludGYoIiVkICIsIGkgKiBpKTsKICAgIHByaW50ZigiXG4iKTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgY2hvaWNlLCBuOwoKICAgIGRvIHsKICAgICAgICBwcmludGYoIlxuPT09PT0gTUVOVSA9PT09PVxuIik7CiAgICAgICAgcHJpbnRmKCIxLiBDaGVjayBQZXJmZWN0IE51bWJlclxuIik7CiAgICAgICAgcHJpbnRmKCIyLiBQcmludCBmaXJzdCBuIHByaW1lc1xuIik7CiAgICAgICAgcHJpbnRmKCIzLiBQcmludCBmaXJzdCBuIHBlcmZlY3Qgc3F1YXJlc1xuIik7CiAgICAgICAgcHJpbnRmKCIwLiBFeGl0XG4iKTsKICAgICAgICBwcmludGYoIllvdXIgY2hvaWNlOiAiKTsKICAgICAgICBzY2FuZigiJWQiLCAmY2hvaWNlKTsKCiAgICAgICAgc3dpdGNoKGNob2ljZSkgewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICBwcmludGYoIkVudGVyIHg6ICIpOwogICAgICAgICAgICAgICAgc2NhbmYoIiVkIiwgJm4pOwogICAgICAgICAgICAgICAgaWYgKGlzUGVyZmVjdChuKSkKICAgICAgICAgICAgICAgICAgICBwcmludGYoIiVkIGlzIFBlcmZlY3Q6IFRydWVcbiIsIG4pOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHByaW50ZigiJWQgaXMgUGVyZmVjdDogRmFsc2VcbiIsIG4pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIHByaW50ZigiRW50ZXIgbjogIik7CiAgICAgICAgICAgICAgICBzY2FuZigiJWQiLCAmbik7CiAgICAgICAgICAgICAgICBmaXJzdE5QcmltZXMobik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgcHJpbnRmKCJFbnRlciBuOiAiKTsKICAgICAgICAgICAgICAgIHNjYW5mKCIlZCIsICZuKTsKICAgICAgICAgICAgICAgIGZpcnN0TlBlcmZlY3RTcXVhcmVzKG4pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIHByaW50ZigiRXhpdGluZy4uLlxuIik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHByaW50ZigiSW52YWxpZCFcbiIpOwogICAgICAgIH0KICAgIH0gd2hpbGUgKGNob2ljZSAhPSAwKTsKCiAgICByZXR1cm4gMDsKfQ==