, 255 . 1 , s 1; 255 - , , , . 255 3, 255 / 3 = 85; s = 1+ 3 + 85 +... C - 5 51: s = 1 + 3 + 85 + 5 + 51 +... - 15 17. 17 , , s = 1 + 3 + 85 + 5 + 51 + 15 + 17 = 177 < 255, 255 .
, 16: , 2 4, 16 / 2 = 8, 16 / 4 = 4, , .
, , , p q, q q / p, q, . :
4
/*perfnum4.c*/
/* a,b, , a b*/
#include <math.h> /* math.h */
#include <stdio.h> /* -*/
main()
{
int a, b;
int i, j, k,s;
int p, q;
float m;
scanf (" a = %d b = %d", &a, &b);
if (b < 6)
{
printf ("NO PERFECT NUMBERS\n");
return 0;
}
if (a % 2 ==0) // a
{ p = a; q = a+1; }
else
{ q = a; p = a +1; }
for (i = p; i <= b; i = i+2)
{ // , a b
s = 1; // s
m = sqrt (i) + 1; // i, i
for (j = 2; j <= m; j++)
if (i % j == 0)
{
s+= j;
if ((k = i / j) < j) s+= k;
}
/* s i */
if (i == s)
printf ("%d ", i);
}
for (i = q; i <= b; i = i + 2)
{ // , a b
s = 1; // s
m = sqrt (i) + 1; // i, i
for (j = 3; j <= m; j = j + 2) /* */
if (i % j == 0)
{
s+= j;
if ((k = i / j) < j) s+=k;
}
/* s i */
if (i == s)
printf ("%d ",i);
}
return 0;
}
, - m sqm. , , , (int)sqrt (a) + 1 m * m. i sqm, sqm 2 * m + 1 m . , m , i.
|
|
5
/*perfnum5.c*/
/* a,b, , a b*/
#include <math.h> /* */
#include <stdio.h> /* -*/
main()
{
unsigned int a,b;
unsigned int i, j, k,s;
unsigned int p,q;
unsigned int m, sqm;
scanf (" a = %d b = %d", &a, &b);
if (b < 6)
{
printf ("NO PERFECT NUMBERS\n");
return 0;
}
if (a % 2 ==0) // a
{ p=a; q=a+1; }
else
{ q=a; p=a+1; }
m = (int) sqrt (p) + 1; sqm = m * m;
for (i = p; i <= b; i = i+2)
{ // , a b
s = 1; // s
for (j = 2; j <= m; j++)
if (i % j == 0)
{
s+= j;
if ((k = i / j) < j) s+= k;
}
/* s i */
if (i == s)
printf ("%d ",i);
}
m = (int)sqrt (q) + 1; sqm = m * m;
for (i = q; i <= b; i = i + 2)
{ // , a b
s = 1; // s
for (j = 3; j <= m; j = j + 2) /* */
if (i % j == 0)
{
s+= j;
if ((k = i / j) < j) s+=k;
}
/* s i */
if (i == s)
printf ("%d ",i);
}
return 0;
}
, . , , , . , .
perfnum.c , , . , , perfnum5.c , a b . flag - , . , NO (0), , YES (1). , , , . . 1 , , . .
6 ()
/*perfnum6.c*/
/* a,b, , a b*/
|
|
#include <math.h> /* */
#include <stdio.h> /* -*/
#define NO_NUMBERS "NO PERFECT NUMBERS BETWEEN a=%d b=%d \n"
#define NO 0
#define YES 1
main()
{
unsigned int a, b;
unsigned int i, j, k, r, d, s;
unsigned int p, q;
unsigned int m, sqm;
unsigned int flag = NO;
scanf (" a = %d b = %d", &a, &b);
if (b < 6)
{
printf (NO_NUMBERS. a, b);
return 0;
}
if (a % 2 ==0) // a
{ p = a; q = a + 1; }
else
{ q = a; p = a + 1; }
m = (int) sqrt (p) + 1 sqm = m * m;
d=1;
for (r = 0; r <= 1; r++)
{
for (i = p; i <= b; i = i + 2)
{ /* , a b, - */
s = 1; // s
for (j = 2; j < sqrt (i) + 1; j = j + d)
if (i % j == 0)
{
s+=j;
if ((k = i / j) < j) s+=k;
}
/* s i */
if (i == s)
{ printf ("%d ",i); flag = YES; }
}
m = (int)sqrt (q) + 1 sqm = m * m;
d = 2;
p = q;
}
if (NO == flag)
printf (NO_NUMBERS, a, b);
return 0;
}
1-
. :
;
;
;
.
.
, :
;
;
, .
.
2-
1 n, , n .
2 p; , p. . , , p.
3 n, n . , , .
4 m*n, ; , . , .
5 P=(p1, p2,..., pn) - 1,2,...,n. m1,m2,...,mn , i=1,2,...,n mi , i, P , i. n . , - .
6 , . , , .
7 n, k. , n , k , .
8 . a1, a2,... a1 a, k = 1, 2,... a(k+1), ak a. , b.
|
|
a, b, , .
9 , . , , . , .
bcc32 M -(???) map, ;
bcc32 S - asm, , ;
bcc32 c - ( obj), ;
bcc32 o __ (???) - ( exe), .
{public void paint (Graphics g)
{
Font font = new Font (TimesRoman, FontBOLD, 24);
g.setFont (font);
g.drawString (I am a student, 5, 25)
}
}
Path : C:\ProgramFiles\Java\jdk 1.6.0_18