1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Розложить на множители натуральное число. Число задать при опросе

Тема в разделе "Вопросы новичков и не только", создана пользователем jaFit, 28 мар 2010.

  1. jaFit

    jaFit Гость

    Репутация:
    0
    Помогите пожалуста написать программу на С.

    Розложить на множители натуральное число. Число задать при опросе.
    Например, 1050=2*3*5*5*7

    буду очень благодарен! ответы пишите сюда или в асю (570-505-552) :D

    я придумал как ее сделать, но написать ее на ЯП не умею. Ход такой: число делится на 2 (самое меньшее простое число), если оно делится на 2 без остачи, то 2 - запоминается. Так само для 3, 5, 7, 11... хотя вводить все простые числа и проверять их, ето глупо... а по другому я не знаю как делать ;)
     
  2. eReS

    eReS Гость

    Репутация:
    0
    Код:
    /* 
    * http://projecteuler.net
    * 
    * Задание №3
    * 
    * Простые делители 13195 - 5,7,13 і 29.
    * Найти найбольшее простое число с 600851475143
    */
    
    #include <iostream>
    #include <cmath>		// sqrt
    using namespace std;
    
    int MiniPrimeFactor(long long int a)
    {	
    int off = 0;
    for (int i=2; i<=a; ++i) {
    if (!(a%i)) {
    return i;
    }
    }
    }
    
    int main()
    {
    long long int max_number = 0;			// полученое число
    long long int get_number;				// найменьшее простое число
    long long int number = 600851475143;	// число от которого нужно найти найбольший делитель
    
    while (number > 1) {
    get_number = MiniPrimeFactor(number);
    cout << get_number << " ";
    
    if (max_number < get_number) {
    max_number = get_number;
    }
    
    number = number/get_number;
    }
    cout << endl << "Найбольший делитель: " << max_number << endl;
    }
     
  3. jaFit

    jaFit Гость

    Репутация:
    0
    чтото ето оч сложно... и помоему совсем, не то. я оттсуда ничего не смогу высосать потому что я не понимаю ... и ето написано на С++ а мне просто на С :D
     
  4. jaFit

    jaFit Гость

    Репутация:
    0
    Вот что то типа етого, но у меня не работает :D

    <!--shcode--><pre><code class='С'>#include <stdio.h>
    main()
    {
    int M,i=3;
    printf("vvedi M\n");
    scanf("%d",&M);
    printf("%d=1",M);
    while(M%2==0)
    {
    printf("*%d",2);
    M=M/2;
    }
    while(i <=M)
    {
    if(M%i==0)
    {
    printf("*%d",i);
    M=M/i;
    }
    else
    i=i+2
    }
    }[/CODE]
     
  5. jaFit

    jaFit Гость

    Репутация:
    0
    ну что никто не знает почему не работает ?
     
  6. eReS

    eReS Гость

    Репутация:
    0
    я кинул пример который делал недавно, если тебе даже в нем сложно разобраться - читай книжки и не морочь людям головы.
    > 4. старайтесь ВСЕГДА сначала решить задачу САМОСТОЯТЕЛЬНО, ну а когда не выходит ОБЯЗАТЕЛЬНО публикуйте здесь свой код, даже если он не работает.
    читай внимательно! сдесь на твой свист никто тебе просто так ничего писать не будет
     
  7. jaFit

    jaFit Гость

    Репутация:
    0
    я выложил код, смотри предыдущие посты, кстати все работает !!!
     
Загрузка...

Поделиться этой страницей