Другие языки программирования и технологии
Помогите написать задачу на языке С
Задача такая: Даны натуральные числа n и m. Найти все натуральные числа, меньше n и взаимно простые с m Заранее спасибо
Задача эта решается так (комментарии прилагаются к коду) :
=================БЕСПЛАТНО! =======================
#include <stdio.h>
// Функция определения НОД (a, b)
// по алгоритму Евклида.
int NOD(int a, int b)
{
// Пока a и b оба не равны нулю.
while(a != 0 && b != 0)
{
// Если a больше b.
if(a > b)
{
// % - нахождение остатка от деления.
a = a % b;
}
// Иначе.
else
{
b = b % a;
}
}
// Вернуть a или b, поскольку к точке
// выхода либо a либо b обязательно
// равно нулю.
return a + b;
}
// Главная функция программы.
int main()
{
int n = 0;
int m = 0;
// Считываем с консоли n и m.
printf("Input n m: ");
scanf("%d %d", &n, &m);
// Dig - число, которое по условию
// меньше n и является кандидатом
// на взаимно-простое с m.
int dig = 0;
// Пока dig меньше n.
while(dig < n)
{
// Если НОД (dig, m) равен единице,
// числа dig и m взаимно-простые.
if(NOD(dig, m) == 1)
{
printf("%d and %d is coprime numbers\n", dig, m);
}
// Увеличение значения dig на единицу.
dig++;
}
// Для остановки выполнения программы.
getchar();
getchar();
}
==================================================
Ресурс по алгоритму Евклида: http://younglinux.info/algorithm/euclidean
Код работает, проверен на msvc2010.
Если будут дополнительные вопросы, пиши в ICQ: 228004347 или Агент.
=================БЕСПЛАТНО! =======================
#include <stdio.h>
// Функция определения НОД (a, b)
// по алгоритму Евклида.
int NOD(int a, int b)
{
// Пока a и b оба не равны нулю.
while(a != 0 && b != 0)
{
// Если a больше b.
if(a > b)
{
// % - нахождение остатка от деления.
a = a % b;
}
// Иначе.
else
{
b = b % a;
}
}
// Вернуть a или b, поскольку к точке
// выхода либо a либо b обязательно
// равно нулю.
return a + b;
}
// Главная функция программы.
int main()
{
int n = 0;
int m = 0;
// Считываем с консоли n и m.
printf("Input n m: ");
scanf("%d %d", &n, &m);
// Dig - число, которое по условию
// меньше n и является кандидатом
// на взаимно-простое с m.
int dig = 0;
// Пока dig меньше n.
while(dig < n)
{
// Если НОД (dig, m) равен единице,
// числа dig и m взаимно-простые.
if(NOD(dig, m) == 1)
{
printf("%d and %d is coprime numbers\n", dig, m);
}
// Увеличение значения dig на единицу.
dig++;
}
// Для остановки выполнения программы.
getchar();
getchar();
}
==================================================
Ресурс по алгоритму Евклида: http://younglinux.info/algorithm/euclidean
Код работает, проверен на msvc2010.
Если будут дополнительные вопросы, пиши в ICQ: 228004347 или Агент.
#include <stdio.h>
int gcd(int a, int b) {
while(b) b^=a^=b^=a%=b;
return a;
}
int main() {
scanf("%d %d",&n,&m);
while (--n>0) {
if (gcd(n,m)==1) {
printf("%d\n",n);
}
}
return 0;
}
int gcd(int a, int b) {
while(b) b^=a^=b^=a%=b;
return a;
}
int main() {
scanf("%d %d",&n,&m);
while (--n>0) {
if (gcd(n,m)==1) {
printf("%d\n",n);
}
}
return 0;
}
Стучи в аську, за небольшую плату решу быстро и качественно.
648964446
648964446
Похожие вопросы
- Помогите пож-та,ОЧ надо завтра на контрольную написать задачу на языке Visual Studio 2010 (c++) Заранее СПС !!!
- Помогите решить задачу на языке Паскаль. Найти сумму всех чётных чисел от 1 до 1000 (задачу решить 2 способами)
- ПОМОГИТЕ НАПИСАТЬ ЗАДАЧИ НА ПАСКАЛЕ
- Помогите решить задачу на языке c++. Не понимаю условия в конце кода.
- Помогите составить задачу на языке VBA
- Помогите написать задачу в Pascal.
- Помогите написать задачи в паскале!!!!
- Помогите написать задачу
- помогите написать программу на языке С!
- Народ! Помогите решить задачи на языке паскаль. Очень срочно надо! Буду рада решению хотя бы одной из списка=)